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();
相关推荐
马丁聊GEO1 小时前
解码AI用户心智,筑牢可信GEO根基——悠易科技深度参与《中国AI用户态度与行为研究报告(2026)》发布会
人工智能·科技
nap-joker1 小时前
Fusion - Mamba用于跨模态目标检测
人工智能·目标检测·计算机视觉·fusion-mamba·可见光-红外成像融合·远距离/伪目标问题
一只幸运猫.1 小时前
2026Java 后端面试完整版|八股简答 + AI 大模型集成技术(最新趋势)
人工智能·面试·职场和发展
Promise微笑1 小时前
2026年国产替代油介损测试仪:油介损全场景解决方案与技术演进
大数据·网络·人工智能
深海鱼在掘金2 小时前
深入浅出 LangChain —— 第三章:模型抽象层
人工智能·langchain·agent
生信碱移2 小时前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
workflower2 小时前
具身智能行业应用-生活服务业
大数据·人工智能·机器人·动态规划·生活
GitCode官方2 小时前
基于昇腾 MindSpeed LLM 玩转 DeepSeekV4-Flash 模型的预训练复现部署
人工智能·开源·atomgit
大刘讲IT2 小时前
AI重塑企业信息价值标准:从“系统供给”到“用户定义”的企业数字化新范式
人工智能·经验分享·ai·制造
流年似水~2 小时前
MCP协议实战:从零搭建一个让Claude能“看见“数据库的工具服务
数据库·人工智能·程序人生·ai·ai编程