5
Sto lavorando a un progetto con openCV 2.2. Ho bisogno di fare l'elaborazione su ogni frame di un file AVI, ma quando eseguo il mio codice si aggrappa solo al primo fotogramma del file. CV_CAP_PROP_POS_FRAMES non sembra funzionare. Qualche idea, perché no?Acquisizione frame OpenCV da AVI
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:");
}
Perché non usi 2.3.1 o 2.4? – Alex
L'ho provato con opencv 2.3.1 e il problema esiste ancora. –