全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++如何使用OpenCV读取和显示图片?(代码示例)

OpenCV C++读取显示图片需用cv::imread和cv::imshow,注意路径正确(避免中文)、调用waitKey防止闪退、正确链接库;支持灰度/彩色/带Alpha通道读取,可查尺寸类型及调整窗口大小。

用OpenCV在C++中读取和显示图片很简单,核心是cv::imreadcv::imshow两个函数,但要注意路径、窗口管理和库链接等细节。

1. 基础读取与显示代码

以下是最小可运行示例(需已正确安装并链接OpenCV):

#include 
#include 

int main() {
    // 读取图片(支持jpg、png、bmp等常见格式)
    cv::Mat img = cv::imread("lena.jpg");
    
    // 检查是否成功读取
    if (img.empty()) {
        std::cerr << "错误:无法加载图片,请检查路径!" << std::endl;
        return -1;
    }
    
    // 创建窗口并显示
    cv::namedWindow("Display", cv::WINDOW_AUTOSIZE);
    cv::imshow("Display", img);
    
    // 等待按键(0表示无限等待)
    cv::waitKey(0);
    
    return 0;
}

2. 关键注意事项

  • 图片路径必须正确:相对路径以可执行文件所在目录为基准;推荐用绝对路径调试,或把图片放在项目输出目录(如Debug/build/下)
  • 中文路径会失败:OpenCV的imread不支持UTF-8路径(Windows下尤其明显),请用英文路径或改用cv::imdecode+std::filesystem绕过
  • 必须调用waitKey():否则窗口会闪退;参数为毫秒数,0表示一直等待直到按键
  • 确保链接了OpenCV库:CMake中需find_package(OpenCV REQUIRED)target_link_libraries(your_target ${OpenCV_LIBS})

3. 常见扩展用法

  • 指定读取方式cv::imread("img.jpg", cv::IMREAD_GRAYSCALE) 读灰度图;cv::IMREAD_COLOR(默认,BGR通道);cv::IMREAD_UNCHANGED(保留alpha通道)
  • 检查图像信息std::cout (type()返回CV_8UC3等编码)
  • 调整窗口大小:用cv::namedWindow("name", cv::WINDOW_NORMAL)后,再调用cv::resizeWindow("name", 800, 600)

4. Windows下中文路径临时解决(C++17)

如果必须用中文路径,可用如下方式:

#include 
#include 
#include 
#include 

std::vector readImageFromPath(const std::wstring& path) {
    std::ifstream file(path, std::ios::binary);
    file.seekg(0, std::ios::end);
    size_t size = file.tellg();
    file.seekg(0);
    std::vector buf(size);
    file.read(reinterpret_cast(&buf[0]), size);
    return buf;
}

// 使用:
// auto buf = readImageFromPath(L"测试文件夹\\猫.png");
// cv::Mat img = cv::imdecode(buf, cv::IMREAD_COLOR);

基本上就这些。只要路径对、库连上、加上waitKey,就能稳稳显示图片。


# windows  # 编码  # ai  # c++  # ios  # win  # stream  # red  # Filesystem  # opencv  # 放在  # 就能  # 英文  # 很简单  # 不支持  # 请用  # 但要  # 可执行文件  # 可查  # 请检查 


相关文章: 如何通过WDCP绑定主域名及创建子域名站点?  如何做网站制作流程,*游戏网站怎么搭建?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  Swift中switch语句区间和元组模式匹配  如何确认建站备案号应放置的具体位置?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  山东网站制作公司有哪些,山东大源集团官网?  音乐网站服务器如何优化API响应速度?  建站之星2.7模板快速切换与批量管理功能操作指南  济南网站建设制作公司,室内设计网站一般都有哪些功能?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  如何快速生成高效建站系统源代码?  ,sp开头的版面叫什么?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  如何用狗爹虚拟主机快速搭建网站?  建站VPS推荐:2025年高性能服务器配置指南  为什么Go需要go mod文件_Go go mod文件作用说明  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  ,柠檬视频怎样兑换vip?  黑客如何利用漏洞与弱口令入侵网站服务器?  建站之星微信建站一键生成小程序+多端营销系统  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  常州企业网站制作公司,全国继续教育网怎么登录?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  c# 在高并发场景下,委托和接口调用的性能对比  网站图片在线制作软件,怎么在图片上做链接?  C++中引用和指针有什么区别?(代码说明)  如何高效完成自助建站业务培训?  b2c电商网站制作流程,b2c水平综合的电商平台?  C#如何序列化对象为XML XmlSerializer用法  如何在云虚拟主机上快速搭建个人网站?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  如何通过山东自助建站平台快速注册域名?  建站10G流量真的够用吗?如何应对访问高峰?  红河网站制作公司,红河事业单位身份证如何上传?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  建站主机无法访问?如何排查域名与服务器问题  建站主机服务器选型指南与性能优化方案解析  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  自助网站制作软件,个人如何自助建网站?  如何通过虚拟机搭建网站?详细步骤解析  建站主机与虚拟主机有何区别?如何选择最优方案?  如何通过服务器快速搭建网站?完整步骤解析  c++ stringstream用法详解_c++字符串与数字转换利器  IOS倒计时设置UIButton标题title的抖动问题  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。