5
我正在使用openCV 2.2開發一個項目。我需要對AVI文件的每一幀進行處理,但是當我運行我的代碼時,它只抓取文件的第一幀。 CV_CAP_PROP_POS_FRAMES似乎沒有工作。任何想法爲什麼不呢?來自AVI的OpenCV幀捕獲
CvCapture* capture = cvCaptureFromAVI("test1.avi");
IplImage *img = 0;
if (!cvGrabFrame(capture)) {
printf("Error: Couldn't open the image file.\n");
return 1;
}
int numFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);
int posFrame = 1;
for(int i =0; i <= numFrames; i++){
cvSetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES, i);
posFrame = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES);
img = cvGrabFrame(capture);
cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
cvShowImage("Image:", img);
printf("%i\n",posFrame);
cvWaitKey(0);
cvDestroyWindow("Image:");
}
爲什麼不使用2.3.1或2.4? – Alex
我與opencv 2.3.1 tred它和問題仍然存在。 –