opencv读取图片和视频

读取图片

设定好图片路径,用imread就可以读取存放为Mat格式,用imshow显示图片就ok了。

复制代码
std::string Path =
      "D:/Qttemp/OpencvStudy/chapter1/OpencvCourse/Resources/1.jpg";

  Mat img = imread(Path);
  if (img.empty()) {
    spdlog::error("读取图像失败: {}", Path);
    return 1;
  }
  imshow("OpenCV 测试", img);

这里用的绝对路径,显示效果就不展示了,免得侵权。

读取视频

视频文件其实是个图片组,用while循环videocapture读取出来存放到一个变量,然后和显示图片一样显示就行了

复制代码
std::string Path =
      "D:/Qttemp/OpencvStudy/chapter1/OpencvCourse/Resources/1.mp4";
      VideoCapture cap(Path);
      Mat frame;
      while(true){
        cap.read(frame);
        imshow("OpenCV test", frame);
        waitKey(1);

waitkey可以间接控制视频的播放速率

另外这段demo其实有个问题,点击关闭的时候会发现视频重新弹出关不掉,这是因为while循环一直是true,没有打破循环的条件,这里也是和显示图片有区别的地方。我们只需要改动一下代码

复制代码
int key = waitKey(30);
    if (key == 27) {
      break;
    }

key=27的时候就是用户按下esc键,会打破while循环解决,加上

复制代码
cap.release();
  destroyAllWindows();

这一段是释放资源关闭所有opencv显示窗口,操作就很丝滑没那些问题了。

效果:

没有处理按关闭键的,只处理按esc键的,按下程序就可以正常退出了。但其实还是很不爽,因为关闭按钮没法关闭,因为这个窗口的组件我没法获取,imshow创建的窗口不好控制,这个可以自己实现一个窗口来控制关闭。

相关推荐
深度研习笔记19 分钟前
OpenCV工业视觉进阶14|SQLite违规数据库存储+历史记录查询+Excel报表导出,完成项目商用数据闭环(验收必备)
数据库·opencv·sqlite
深度研习笔记11 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
深度研习笔记17 小时前
OpenCV工业视觉实战06|ROI区域截取+局部精细化检测,锁定作业区域、屏蔽无效背景,大幅提升YOLO检测准确率
人工智能·opencv·yolo
fai厅的秃头姐!18 小时前
OpenCV-基础篇
人工智能·opencv·计算机视觉
丨白色风车丨19 小时前
OpenCV 基于 HSV 颜色空间实时颜色分割(摄像头蓝色识别)
人工智能·opencv·计算机视觉·hsv颜色识别·python计算机视觉
深度研习笔记21 小时前
OpenCV工业视觉实战10|违规语音播报+弹窗告警+重复告警过滤,打造智能声光预警系统(项目加分必备)
人工智能·opencv·计算机视觉
AI人工智能+21 小时前
银行回单识别技术通过AI驱动的智能文档理解方案,实现财务处理的革命性升级
深度学习·计算机视觉·自然语言处理·ocr·银行回单识别
hhzz1 天前
CNN图像分类入门:基于TensorFlow+Keras的CIFAR-10数据集全流程实战
图像处理·计算机视觉·ai·cnn·大模型
在世修行2 天前
高斯模糊与图像去噪
opencv·gaussianblur
科技林总2 天前
图像处理领域的技术发展
人工智能·深度学习·计算机视觉