纯粹是自娱自乐,并没有对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;
- }