本文介绍视频的读取与显示,opencv视频读取有很多种方法,我们主要介绍两种常用的方法,首先介绍视频读取用到的函数:
capture():capture函数是Videocapture类的一个读取视频或摄像头的函数,capture输入不同参数读取方式不同:
-
capture.open("xxx.avi");//利用初始化的capture,打开视频"xxx.avi",视频格式也可以为MP4格式
-
capture.open(0);//利用初始化的capture,打开ID为0的摄像头
-
capture.release();//关闭视频文件或者摄像头
视频读取代码:
方法一:
#include<opencv2/opencv.hpp>
#include<iostream>
usingnamespace cv;
usingnamespace std;
void main()
{
//VideoCapture capture(0);
VideoCapture capture("cat.mp4");
Mat frame;
if (capture.isOpened()) //判断视频是否成功打开
{
//capture.grab() 从视频文件或捕获设备中抓取下一个帧
while (capture.grab()) {
capture >> frame;
imshow("读取视频", frame);//显示当前帧
waitKey(50);
}
}
waitKey();
}
方法二:
#include<opencv2/opencv.hpp>
#include<iostream>
usingnamespace cv;
usingnamespace std;
int main(intargc, char *argv[])
{
VideoCapture cap("cat.mp4");//打开cat.mp4视频
if (!cap.isOpened())
{
return;
}
Mat frame;
bool stop = false;
while (!stop)
{
cap.read(frame); // 或 cap>>frame;
imshow("Video", frame);
if (waitKey(30) == 27) //Esc键退出
{
stop = true;
}
}
}
到此视频读取的两种方法介绍完毕,欢迎留言指正,如有对图像处理、计算机视觉感兴趣的小伙伴关注公众号,一起学习进步。
可以微信搜索“图像处理CV讲武堂”关注,也可如下二维扫码关注。