本文介绍视频的读取与显示,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讲武堂”关注,也可如下二维扫码关注。