opencv採集視訊/攝像頭資料並儲存
阿新 • • 發佈:2019-01-25
純粹是自娛自樂,並沒有對opencv的使用進行深入的學習,用opencv開啟視訊檔案或者開啟攝像頭採集,然後儲存,這也是最基礎的東西。
一、安裝配置環境
VS2008下安裝配置opencv,2005、2010的步驟應該差不多的,這裡提供網址,沒有比這個更詳細的了http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.3.1
二、程式程式碼
opencv的學習,推薦《opencv教程——基礎篇》,其中第三章有對視訊的詳細講解,下面貼出程式碼:
#include "stdafx.h" #include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { CvCapture* capture = 0; IplImage* frame = 0; capture = cvCaptureFromAVI("video.avi"); //capture = cvCaptureFromCAM( 0 ); //使用攝像頭 就換成這句 double fps = cvGetCaptureProperty(capture,CV_CAP_PROP_FPS); //視訊幀率 //int fps=25; //捕捉幀率 ,影響生產的檔案的播放速度 frame = cvQueryFrame( capture ); //先捕獲一幀 CvVideoWriter* writer = 0; //儲存就加上這句 int isColol=1; //int frameW=640; //int frameH=480; writer=cvCreateVideoWriter("out.avi",CV_FOURCC('F','L','V','1'),fps,cvSize(frame->width,frame->height),isColol);//這裡大小隨便設好像不行 //cvNamedWindow( "視窗", 1 ); //for(int i=0;i<50;i++) //2秒 for(;;) //一直讀 { frame = cvQueryFrame( capture ); cvWriteFrame(writer,frame ); cvShowImage( "視窗", frame ); //顯示一幀影象 cvWaitKey(1000 / fps);//視訊速度 } cvReleaseVideoWriter(&writer); cvReleaseImage(&frame); cvReleaseCapture( &capture ); cvDestroyWindow("視窗"); return 0; }