C++和OpenCV读取显示图片需三步:配置环境、加载图片、创建窗口;关键在正确安装链接OpenCV,用cv::imread读图并检查img.empty()确保成功。
用C++和OpenCV读取并显示一张图片,是计算机视觉入门最基础也最关键的一步。核心就三件事:配置好环境、加载图片、创建窗口展示——只要代码写对,几秒就能看到结果。
这是最容易卡住的环节。如果你还没装OpenCV,推荐用包管理器安装(如Windows用vcpkg、macOS用Homebrew、Ubuntu用apt),比源码编译简单得多。在CMakeLists.txt里要包含OpenCV库:
(OpenCV REQUIRED)如果用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环境没问题,这张图就会稳稳地出现在窗口里——你已经迈出了计算机视觉的第一步。
# windows # 计算机 # ubuntu # mac # c++ # macos # win # cos # 报错提示 # red # if # include # cerr # undefined # 对象 # ide # opencv # 这是 # 加载 # 会报 # 自己的 # 的是 # 就会 # 如果你 # 还没 # 放在 # 去了
相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334 】
相关推荐: Win11怎么关闭边缘滑动手势_Windows11禁用触摸屏边缘操作 Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】 Windows蓝屏BAD_POOL_HEADER故障详解_蓝屏池损坏错误修复指南 Win11怎么开启专注模式_Windows11时钟应用Focus Session 如何使用Golang实现微服务事件驱动_使用消息总线解耦服务 c++的static关键字有什么用 静态变量和静态函数的应用场景【教程】 如何在Golang中实现并发消息队列消费者_Golang channel消息消费实践 php485在macos下怎么配置_php485 macOS系统配置指南【解答】 Win11怎么设置DNS服务器_Windows11修改网络适配器DNS优选 如何使用Golang操作指针变量_Golang解引用与赋值实践 Python文件管理规范_工程实践说明【指导】 c++获取当前时间戳_c++ time函数使用详解 Win11怎么看电池循环次数_Win11笔记本电池寿命检测【命令】 XAMPP 启动失败(Apache 突然停止)的终极排查与修复指南 c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】 VSC怎么在PHP中调试MySQL_数据库交互排查技巧【教程】 Win11怎么更改系统语言_Win11中文语言包下载与安装【指南】 Windows服务启动类型恢复方法_错误修改导致的系统服务异常 Win11怎么清理C盘系统日志_Win11清理系统日志文件【步骤】 Win11如何设置环境变量 Win11添加和修改系统与用户变量【教程】 如何在 Go 同包不同文件中正确引用结构体 Linux如何挂载新硬盘_Linux磁盘分区格式化与开机自动挂载【指南】 Win11怎么关闭自动更新 Win11永久关闭系统更新的有效方法【技巧】 Mac如何修改Hosts文件?(本地开发与屏蔽网站) XSLT怎么生成动态的HTML属性名和标签名 Win11怎么设置任务栏图标大小_Windows11注册表TaskbarSi修改 Win11怎么关闭触摸屏_禁用Win11笔记本触摸屏功能设置【教程】 Win11怎么关闭自动维护 Win11禁用系统自动维护功能【优化】 Win11怎么更改电脑名称_Windows 11修改计算机名操作指南【步骤】 如何解决Windows时间不准的问题?(自动同步设置) 如何在同包不同文件中正确引用 Go 结构体 php怎么下载安装后测试是否成功_简单脚本验证方法【操作】 c++输入输出流 c++ cin与cout格式化输出【方法】 Win11如何连接Xbox手柄 Win11蓝牙连接游戏手柄教程【步骤】 Win11怎么设置任务栏透明_Windows11使用工具美化任务栏 Golang如何测试HTTP中间件_Golang HTTP中间件功能测试实践 Win10怎样设置闹钟贪睡时间 Win10闹钟贪睡时长设置【步骤】 如何在JavaScript中动态拼接PHP的base_url与jQuery变量 如何使用Golang sort排序切片_Golang sort排序方法示例 电脑无法识别U盘怎么办 Windows磁盘管理与驱动更新修复识别问题【解决】 如何使用Golang template生成文本模板_动态生成HTML或文本 微信短链接怎么还原php_用浏览器开发者工具抓包获取【方法】 c++怎么处理多线程死锁_c++ lock_guard与unique_lock锁管理【技巧】 c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】 MAC如何安装Git版本控制工具_MAC开发环境配置与Xcode插件安装【教程】 Win11怎么忘记WiFi网络_Win11删除已保存无线连接【教程】 如何在Golang中实现文件下载_Golang文件传输与内容类型处理方法 Python大文件处理策略_内存优化说明【指导】 Win11怎么查看wifi信号强度_检测Windows 11无线网络质量方法【详解】 如何开启Windows的远程服务器管理工具(RSAT)?(管理服务器)2026-01-05
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。