如何在Google Colab中用C++调用OpenCV实现imread/imshow?
在Google Colab中运行C++版OpenCV imread/imshow的正确示例
你遇到的两个错误原因及解决方法如下:
- 头文件路径错误:代码中硬编码的绝对路径包含无效字符
…,且Colab的OpenCV头文件已加入系统默认搜索路径,无需手动指定绝对路径 - 链接语法错误:
#pragma comment(lib)是Visual Studio专属的Windows链接方式,Colab基于Linux,需通过编译参数链接OpenCV库 - GUI限制:Colab无本地图形界面,
cv::imshow和cv::waitKey无法直接生效,需借助Python工具显示图像
以下是可从头运行的完整流程:
步骤1:上传图像到Colab
确保目标图像(如remastered-lena-512x512.tiff)已上传到Colab当前工作目录(通过左侧文件面板上传即可)。
步骤2:编写C++读取图像代码
创建opencv_read.cpp文件,代码如下:
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main() { const char* img_path = "remastered-lena-512x512.tiff"; Mat img = imread(img_path, IMREAD_COLOR); if (img.empty()) { cerr << "图像读取失败,请检查文件路径!" << endl; return -1; } cout << "图像尺寸:" << img.cols << "×" << img.rows << endl; // 保存为PNG格式,方便后续Python显示 imwrite("lena_display.png", img); return 0; }
步骤3:编译C++代码
在Colab代码单元格中执行编译命令,自动获取OpenCV的编译和链接参数:
!g++ opencv_read.cpp -o opencv_read `pkg-config --cflags --libs opencv4`
步骤4:运行编译后的程序
!./opencv_read
运行成功后会输出图像尺寸,并生成lena_display.png文件。
步骤5:用Python显示图像
利用matplotlib显示生成的图像:
import matplotlib.pyplot as plt import cv2 # 读取图像并转换为RGB格式(OpenCV默认BGR) img = cv2.imread("lena_display.png") img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.figure(figsize=(8, 8)) plt.imshow(img_rgb) plt.axis('off') plt.show()
内容的提问来源于stack exchange,提问作者msj
相关产品推荐
相关产品推荐

