Opencv-视频的读取

0. 写在前面

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

1. 视频的读取

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

创建对象的方式有三种:

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

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

cpp 复制代码
cv::VideoCapture cap;
cap.open("xxx/xxx/xxx.mp4");

//1. read 方式
Mat frame;
cap.read(frame);
//2. >> 方式
cap >> frame;

//获取 视频中的某些属性
retval = cap.get(gropId);
//gropId代表的数字属性:
1:cv2::CAP_PROP_POS_FRAMES       从0开始索引帧,帧位置
2: cv2::CAP_PROP_POS_AVI_RATIO    视频文件的相对位置(0表示开始,1表示结束)
3: cv2::CAP_PROP_FRAME_WIDTH      视频流的帧宽度
4: cv2::CAP_PROP_FRAME_HEIGHT     视频流的帧高度
5: cv2::CAP_PROP_FPS              帧率
6: cv2::CAP_PROP_FOURCC           编解码器四字符代码
7: cv2::CAP_PROP_FRAME_COUNT      视频文件的帧

Mat img;
int num = cap.get(cv2::CAP_PROP_FRAME_COUNT);
for(int 0 = 0;i < num - 1;i++)
{
    cap.read(img);
    //do something
    //...
}

cap.release();
相关推荐
灏瀚星空6 分钟前
基于 Python 与 GitHub,打造个人专属本地化思维导图工具全流程方案(上)
开发语言·人工智能·经验分享·笔记·python·个人开发·visual studio
xcLeigh7 分钟前
AI的提示词专栏:Prompt 与 Python Pandas 的结合使用指南
人工智能·python·ai·prompt·提示词
羽小暮7 分钟前
Yolo11环境配置win+Python+Anaconda--小白目标检测学习专用(超详细)
人工智能·yolo·目标检测
草莓熊Lotso8 分钟前
Python 入门超详细指南:环境搭建 + 核心优势 + 应用场景(零基础友好)
运维·开发语言·人工智能·python·深度学习·学习·pycharm
雪寻梅*10 分钟前
(深度学习)python+yolov11训练自己的数据集
人工智能·python·深度学习·yolo
tq108623 分钟前
AI 重塑三层双链:从金字塔结构到人智协同网络
人工智能
砚边数影25 分钟前
AI开发依赖引入:DL4J / Java-ML 框架 Maven 坐标配置
java·数据库·人工智能·深度学习·机器学习·ai·maven
砚边数影27 分钟前
AI环境搭建(一):JDK17 + Maven 配置,Java开发环境标准化流程
数据库·人工智能·ai·ai编程
大模型最新论文速读29 分钟前
字节跳动 Seed: 用“分子结构”对思维建模
论文阅读·人工智能·深度学习·机器学习·自然语言处理
要加油哦~30 分钟前
AI | 论文 | Widget2Code: From Visual Widgets to UI Code via Multimodal LLMs
人工智能