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创建的窗口不好控制,这个可以自己实现一个窗口来控制关闭。

相关推荐
韩师傅2 天前
海天线算法的前世今生
python·计算机视觉
韩师傅2 天前
当你的甲方设备过烂,要如何快速出效果?
python·计算机视觉
韩师傅2 天前
当你的甲方吐槽天空不够蓝,你应该如何应对
python·计算机视觉
兵慌码乱9 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
小小杨树11 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
H__Rick13 天前
自动对焦学习-3
人工智能·学习·计算机视觉
计算机科研狗@OUC13 天前
(cvpr26) AIMDepth: Asymmetric Image-Event Mamba for Monocular Depth Estimation
人工智能·深度学习·计算机视觉
qq_3665665013 天前
2026最新:5款AI视频口型同步工具实测横评,视频翻译后嘴型对不上的终极解决方案
人工智能·计算机视觉·新媒体运营
梦想三三13 天前
OpenCV银行卡数字识别项目(图像预处理与字符分割)
人工智能·opencv·计算机视觉