如何用c++和OpenCV读取并显示一张图片 计算机视觉入门第一步【教程】

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 referenceno 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环境没问题,这张图就会稳稳地出现在窗口里——你已经迈出了计算机视觉的第一步。