OpenCV之VideoCapture

VideoCaptrue类对视频进行读取操作以及调用摄像头。

头文件:

复制代码
#include <opencv2/video.hpp>

主要函数如下:

构造函数

复制代码
C++: VideoCapture::VideoCapture();
C++: VideoCapture::VideoCapture(const string& filename);
C++: VideoCapture::VideoCapture(int device);

参数:

filename -- 打开的视频文件名。

device -- 打开的视频捕获设备id ,如果只有一个摄像头可以填0,表示打开默认的摄像头。

基本功能

打开视频文件或者设备

复制代码
C++: bool VideoCapture::open(const string& filename);
C++: bool VideoCapture::open(int device);

打开一个视频文件或者打开一个捕获视频的设备(也就是摄像头)

参数:

filename -- 打开的视频文件名。

device -- 打开的视频捕获设备id ,如果只有一个摄像头可以填0,表示打开默认的摄像头。

判断打开是否成功

复制代码
C++: bool VideoCapture::isOpened();

成功返回true,,否则false.

关闭视频文件或者摄像头

复制代码
C++: void VideoCapture::release();

抓取下一帧

复制代码
C++: bool VideoCapture::grab();//需与retrieve结合使用
C++: bool VideoCapture::retrieve(Mat& image, int channel=0);
C++: VideoCapture& VideoCapture::operator>>(Mat& image);
C++: bool VideoCapture::read(Mat& image);

获取视频属性

复制代码
C++: double VideoCapture::get(int propId);

如果属性不支持,将会返回0。

参数:属性的ID。

属性的ID可以是下面的之一:

复制代码
CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds or video capture timestamp.
CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.
CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file: 0 - start of the film, 1 - end of the film.
CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.
CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.
CV_CAP_PROP_FPS Frame rate.
CV_CAP_PROP_FOURCC 4-character code of codec.
CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.
CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .
CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.
CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).
CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).
CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).
CV_CAP_PROP_HUE Hue of the image (only for cameras).
CV_CAP_PROP_GAIN Gain of the image (only for cameras).
CV_CAP_PROP_EXPOSURE Exposure (only for cameras).
CV_CAP_PROP_CONVERT_RGB Boolean flags indicating whether images should be converted to RGB.
CV_CAP_PROP_WHITE_BALANCE Currently not supported
CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently)

设置属性

复制代码
bool VideoCapture::set(int propertyId, double value)

成功返回true,否则返回false

参数:第一个是属性ID,第二个是该属性要设置的值。

属性ID如下:

复制代码
CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds.
CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.
CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file: 0 - start of the film, 1 - end of the film.
CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.
CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.
CV_CAP_PROP_FPS Frame rate.
CV_CAP_PROP_FOURCC 4-character code of codec.
CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.
CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .
CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.
CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).
CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).
CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).
CV_CAP_PROP_HUE Hue of the image (only for cameras).
CV_CAP_PROP_GAIN Gain of the image (only for cameras).
CV_CAP_PROP_EXPOSURE Exposure (only for cameras).
CV_CAP_PROP_CONVERT_RGB Boolean flags indicating whether images should be converted to RGB.
CV_CAP_PROP_WHITE_BALANCE Currently unsupported
CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently)

实例:获取任意一帧

1 实例及初始化:

复制代码
cv::VideoCapture capture.open("Old Film Effect.mp4");

2 设置需要读取帧的位置:

复制代码
capture.set(cv::CAP_PROP_POS_FRAMES,10);//设置读取第10帧

3 读取帧

复制代码
Mat frame;
if (capture.read(frame))
   imwrite("d:/a.bmp",frame);
相关推荐
老米_专讲AIGC几秒前
2026年学术降AI工具深度评测:如何在严苛检测时代安全过关
人工智能·深度学习·chatgpt·aigc·ai写作
谷哥的小弟4 分钟前
SQLite MCP服务器安装以及客户端连接配置
服务器·数据库·人工智能·sqlite·大模型·源码·mcp
工藤学编程8 分钟前
零基础学AI大模型之旅游规划智能体之react_agent实战
人工智能·react.js·旅游
好奇龙猫13 分钟前
【人工智能学习-AI入试相关题目练习-第一次】
人工智能·学习
曾帅16814 分钟前
uniapp安卓启动图
android·opencv·uni-app
Java后端的Ai之路14 分钟前
【阿里AI大赛】-二手车价格预测使用五折交叉验证
人工智能·深度学习·机器学习·二手车价格预测·天池
数说星榆18116 分钟前
在线简单画泳道图工具 PC端无水印
大数据·论文阅读·人工智能·架构·流程图·论文笔记
过河卒_zh156676617 分钟前
情感型AI被“立规矩”,AI陪伴时代进入下半场
人工智能·算法·aigc·生成式人工智能·算法备案
工业HMI实战笔记18 分钟前
拯救HMI×施耐德电气|以AI重塑工业人机交互新范式
人工智能·ui·信息可视化·自动化·人机交互·交互
张彦峰ZYF18 分钟前
多智能体(Multi-Agent)系统在人工智能中的应用与发展
人工智能·autogen·metagpt·multi-agent·agentscope·camel ai·agentverse