总结一下视频的读取和写入,opencv1+和opencv2+以后的版本都总结一下。
先总结一下opencv1+的用法,现在使用的opencv都是2.0以后了,不过1.0版本是使用指针,用起来确实感觉很爽,简单实用。有人不喜欢1.0+的释放控件,我觉得这是个好习惯。
视频读入:
int main(int argc,char* argv[] )
{
//argv[1] input video file
//argv[2] name of new output file
argv[1] = ".../12.mp4";
CvCapture* capture = NULL;
capture = cvCreateFileCapture(argv[1]);
if (!capture)
return - 1;
IplImage *bgr_frame = cvQueryFrame(capture);
//帧率,保证播放的正常速度
double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
//大小
CvSize size = cvSize(
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));
while ((bgr_frame = cvQueryFrame(capture)) != NULL)//(bgr_frame = cvQueryFrame(capture))!=NULL
{
cvNamedWindow("capture", 1);
cvShowImage("capture", bgr_frame);
cvWaitKey(fps);
}
cvReleaseCapture(&capture);
cvReleaseImage(&bgr_frame);
return 0;
}
opencv2.0以后的版本读取方法都是一致的。
int main(int argc, char* argv[])
{
argv[1] = ".../12.mp4";
VideoCapture cap