5
#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獲取4秒長視頻剪輯的幀數大約爲130。我正在做一個步行的動作識別,所以我需要在5幀之間得到其他5幀,所以身體的運動幾乎沒有變化。我目前有一個節目,可以讓我獲得一段視頻剪輯。但是,我無法獲得不同的框架,而且我不知道如何去獲得其他5幀。以上是用於獲取視頻的一幀的代碼。使用OpenCV從.avi視頻獲取幀
感謝您的幫助。如果我看起來很傻,請原諒我,但我對OpenCV相當陌生。當你的代碼運行時,視頻剪輯以更快的速度運行,當然,這可以通過調整延遲時間從100等來改變。然而,是否有一種方法可以簡單地獲取視頻中的1/5幀?例如,代碼的輸出將是一個框架,顯示處於中間移動狀態的人員。但是迄今爲止,非常感謝你的幫助。 – 2012-02-12 06:46:00
那麼,你問你是否可以尋找框架X,其中X可以是從1到5的任何框架? – mevatron 2012-02-20 21:02:21
我能夠提取非常1幀5幀。感謝您的幫助:)我現在正嘗試在視頻中創建遮罩圖像或複製幀的圖像。我想上傳這兩張圖片,告訴你我正在努力完成什麼,但是我還沒有10個聲望:/你還能夠告訴我哪些openCV函數可以使用? – 2012-02-21 00:10:22