为了处理视频序列,我们需要读取每一帧。
基本上,你只需要创建一个CV::VideoCapture实例,然后在循环中提取并读取每一帧。这个基本的main函数仅仅是显示视频序列的每一帧:
#include "stdafx.h"
#include <opencv/highgui.h>
using namespace cv;
int main()
{
VideoCapture capture("walk.avi");
if(!capture.isOpened())
return 1;
double rate=capture.get(CV_CAP_PROP_FPS);
bool stop(false);
Mat frame;
namedWindow("extracted frame");
int delay=1000/rate;
while(!stop)
{
if(!capture.read(frame))
break;
imshow("extracted frame",frame);
if(waitKey(delay)>=0)
stop=true;
}
capture.release();
return 0;
}
本文介绍了一个简单的OpenCV程序,用于读取视频文件的每一帧,并实时显示这些帧。通过使用CV::VideoCapture类,可以轻松地打开视频文件,并通过循环读取每一帧。程序还展示了如何设置正确的延迟以匹配视频的原始播放速度。
1万+

被折叠的 条评论
为什么被折叠?



