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();
相关推荐
放下华子我只抽RuiKe5几秒前
构建企业级私有化 AI:从大模型原理到本地智聊机器人全栈部署指南
开发语言·人工智能·python·深度学习·机器学习·分类·机器人
marteker1 分钟前
阳狮集团收购AI创意分析公司AdgeAI,用数据预测“什么内容会火”
人工智能·搜索引擎·百度
jiajia_lisa2 分钟前
口岸边检智能化,筑牢国门安全防线
人工智能
人工智能AI技术2 分钟前
AWE2026 现场直击:用家庭服务机器人 SDK 控制扫地机+厨房,实现具身智能全栈 Demo
人工智能
退役小学生呀3 分钟前
OpenClaw落地智能运维助手
运维·人工智能·ai
磊磊落落3 分钟前
如何在 CentOS Stream 9 上安装 OpenClaw,并接入企业微信?
人工智能
AI人工智能+4 分钟前
建筑工程施工许可证识别系统,融合计算机视觉与自然语言处理技术,实现证件信息的自动化提取
计算机视觉·自然语言处理·建筑工程施工许可证识别
光羽隹衡4 分钟前
计算机视觉——Opencv(实现抠图功能)
人工智能·opencv·计算机视觉
confiself5 分钟前
deer-flow2本地启动(无make无nginx启动)
linux·人工智能
王解6 分钟前
OpenClaw 技能深度解析(一):Self-Improving —— 从 SKILL.md 看 AI 的自我进化逻辑
人工智能·ai agent·skill·openclaw