当前位置:   article > 正文

Opencv-视频的读取

Opencv-视频的读取
0. 写在前面

        此篇博文主要记录使用Opencv4系列对视频的读取功能。

1. 视频的读取

        cv::VideoCapture类是读取视频的,cv::VideoCapture既支持视频问价的读取,也支持从视频捕获的文件中读取视频数据,像笔记本的自带摄像头,外接USB的摄像头等。

        创建对象的方式有三种:

  1. //1. 从输入的文件名对应的文件中读取
  2. cv::VideoCapture capture(const string& fileName);
  3. //2. 从视频捕捉设备ID中读取
  4. cv::VideoCapture capture(int device);
  5. //3. 调用无参构造函数创建对象
  6. cv::VideoCapture capture();

         创建完VideoCapture类之后,还需要将视频中的图像取出来,读取到cv::Mat矩阵中,共有两种方式,一种是read,一种是>>操作。

  1. cv::VideoCapture cap;
  2. cap.open("xxx/xxx/xxx.mp4");
  3. //1. read 方式
  4. Mat frame;
  5. cap.read(frame);
  6. //2. >> 方式
  7. cap >> frame;
  8. //获取 视频中的某些属性
  9. retval = cap.get(gropId);
  10. //gropId代表的数字属性:
  11. 1:cv2::CAP_PROP_POS_FRAMES 从0开始索引帧,帧位置
  12. 2: cv2::CAP_PROP_POS_AVI_RATIO 视频文件的相对位置(0表示开始,1表示结束)
  13. 3: cv2::CAP_PROP_FRAME_WIDTH 视频流的帧宽度
  14. 4: cv2::CAP_PROP_FRAME_HEIGHT 视频流的帧高度
  15. 5: cv2::CAP_PROP_FPS 帧率
  16. 6: cv2::CAP_PROP_FOURCC 编解码器四字符代码
  17. 7: cv2::CAP_PROP_FRAME_COUNT 视频文件的帧
  18. Mat img;
  19. int num = cap.get(cv2::CAP_PROP_FRAME_COUNT);
  20. for(int 0 = 0;i < num - 1;i++)
  21. {
  22. cap.read(img);
  23. //do something
  24. //...
  25. }
  26. cap.release();

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/419256
推荐阅读
相关标签
  

闽ICP备14008679号