C++和OpenCV读取显示图片需三步:配置环境、加载图片、创建窗口;关键在正确安装链接OpenCV,用cv::imread读图并检查img.empty()确保成功。

用C++和OpenCV读取并显示一张图片,是计算机视觉入门最基础也最关键的一步。核心就三件事:配置好环境、加载图片、创建窗口展示——只要代码写对,几秒就能看到结果。
确保OpenCV已正确安装并链接到项目
这是最容易卡住的环节。如果你还没装OpenCV,推荐用包管理器安装(如Windows用vcpkg、macOS用Homebrew、Ubuntu用apt),比源码编译简单得多。在CMakeLists.txt里要包含OpenCV库:
- find_package(OpenCV REQUIRED)
- target_link_libraries(your_project_name ${OpenCV_LIBS})
- include_directories(${OpenCV_INCLUDE_DIRS})
如果用IDE(如VS或CLion),记得检查是否把OpenCV的include路径和lib路径都加进去了,否则会报undefined reference或no such file错误。
用cv::imread()读取图片,注意路径和返回值
cv::imread()是读图函数,但它不会报错提示“文件不存在”,而是悄悄返回一个空的cv::Mat对象。所以务必检查是否读成功:
立即学习“C++免费学习笔记(深入)”;
- cv::Mat img = cv::imread("lena.jpg");
- if (img.empty()) { std::cerr
路径尽量用相对路径(比如放在项目根目录下),避免硬编码绝对路径。中文路径在Windows上容易出问题,建议全用英文命名。
用cv::imshow()显示图片,别忘了cv::waitKey()
显示图片不能只调用imshow,它只是把图像送到窗口缓冲区,真正让窗口弹出来并保持住,靠的是cv::waitKey():
- cv::imshow("原图", img);
- cv::waitKey(0); // 按任意键退出
- // 或 cv::waitKey(1000); // 自动等1秒后关闭
漏掉waitKey会导致窗口一闪而过,或者根本看不到——这是新手最常踩的坑。
完整可运行示例代码(带注释)
把下面这段保存为show_image.cpp,编译运行即可:
#include#include int main(int argc, char** argv) { // 读取图片(替换成你自己的图片路径) cv::Mat img = cv::imread("test.jpg"); if (img.empty()) { std::cerr << "错误:图片未加载,请检查文件名和路径\n"; return -1; }
// 显示图片 cv::imshow("显示窗口", img); // 等待按键(0表示无限等待) cv::waitKey(0); return 0;}
只要OpenCV环境没问题,这张图就会稳稳地出现在窗口里——你已经迈出了计算机视觉的第一步。











