1
我正在使用OpenCV對AVI文件進行一些處理。除了原始視頻中只有一小部分幀被捕捉的事實之外,一切正常。OpenCV僅捕獲視頻文件中的一小部分幀
這裏是我的代碼的摘錄:
capture=cvCaptureFromAVI(PATH_TO_VIDEO);
int fps=(int) cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);
int frames=(int) cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);
qDebug("%d frames at %d fps",frames,fps);
int framesSaved=0;
while(1) {
frame=cvQueryFrame(capture);
if(!frame) break;
framesSaved++;
data = (uchar *)frame->imageData;
//PROCESSING
cvWriteFrame(writer,frame);
}
cvReleaseVideoWriter(&writer);
qDebug("VIDEO SAVED: %d frames",framesSaved);
輸出:
1948 frames at 50 fps
VIDEO SAVED: 105 frames
任何想法,問題可能是什麼?
感謝
在這種情況下幀數是正確的。視頻輸入視頻長約20秒。 – Osiris 2012-03-04 03:40:30
OpenCV讀取較少幀的機會非常非常低。讀錯號碼的機會非常高。您可以使用其他視頻捕獲後端(Windows Media或Quick time)對其進行測試,以查看幀數是否不同。 – Sam 2012-03-04 07:49:10
這個固定了嗎? – madman2890 2013-05-30 13:22:43