为了处理视频序列,我们需要读取每一帧。
基本上,你只需要创建一个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;
}