#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv)
{
CvCapture* capture=0;
IplImage* frame=0;
capture = cvCaptureFromAVI("C:\\boy walking back.avi"); // read AVI video
if( !capture )
throw "Error when reading steam_avi";
cvNamedWindow( "w", 1);
for( ; ; )
{
/* int cvGrabFrame (CvCapture* capture);
IplImage* cvRetrieveFrame (CvCapture* capture)*/
frame = cvQueryFrame( capture );
if(!frame)
break;
cvShowImage("w", frame);
}
cvWaitKey(0); // key press to close window
cvDestroyWindow("w");
cvReleaseImage(&frame);
}
我正在使用VS2008和openCV。我已经读取了一个视频文件,并使用CV_CAP_PROP_FRAME_COUNT获取帧数,大约为130个,对应4秒的视频片段。我正在进行步态识别的运动分析,因此需要获取每5帧中的另一帧,因为在这5帧之间,身体的运动变化很小。到目前为止,我的程序允许我获取视频剪辑的一个帧。然而,我无法获取不同的帧,也不确定如何获取每5帧中的另一帧。上面的代码是用于获取视频帧的一个示例。