#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);
}
Я использую openCV с VS2008.Я прочитал видеофайл и использовал CV_CAP_PROP_FRAME_COUNT, чтобы получить количество кадров, равное приблизительно 130 для видеоклипа длиной 4 секунды.Я делаю распознавание движения при ходьбе, поэтому мне нужно получать каждые 5 кадров, поскольку между 5 кадрами движение тела практически не меняется.У меня пока есть программа, которая позволяет мне получить один кадр видеоклипа.Тем не менее, я не могу получить разные кадры, а также я не уверен, как получить каждые остальные 5 кадров.Выше приведен код, используемый для получения одного кадра видео.