C++和OpenCV读取显示图片需三步:配置环境、加载图片、创建窗口;关键在正确安装链接OpenCV,用cv::imread读图并检查img.empty()确保成功。
用C++和OpenCV读取并显示一张图片,是计算机视觉入门最基础也最关键的一步。核心就三件事:配置好环境、加载图片、创建窗口展示——只要代码写对,几秒就能看到结果。
这是最容易卡住的环节。如果你还没装OpenCV,推荐用包管理器安装(如Windows用vcpkg、macOS用Homebrew、Ubuntu用apt),比源码编译简单得多。在CMakeLists.txt里要包含OpenCV库:
如果用IDE(如VS或CLion),记得检查是否把OpenCV的include路径和lib路径都加进去了,否则会报undefined reference或no such file错误。
cv::imread()是读图函数,但它不会报错提示“文件不存在”,而是悄悄返回一个空的cv::Mat对象。所以务必检查是否读成功:
立即学习“C++免费学习笔记(深入)”;
路径尽量用相对路径(比如放在项目根目录下),避免硬编码绝对路径。中文路径在Windows上容易出问题,建议全用英文命名。
显示图片不能只调用imshow,它只是把图像送到窗口缓冲区,真正让窗口弹出来并保持住,靠的是cv::waitKey():
漏掉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环境没问题,这张图就会稳稳地出现在窗口里——你已经迈出了计算机视觉的第一步。