核心函数:
1. cvCreateFileCapture
2. cvGetCaptureProperty
3. cvQueryFrame
4. cvCreateVideoWriter
5. cvWriteFrame
程序:
#include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> #include <stdio.h> int Vedio(int argc,char** argv) { CvCapture* SrcCapture=cvCreateFileCapture("e:\\vedio\\1.avi"); //读取视频文件 cvNamedWindow("src"); cvNamedWindow("GRAY"); IplImage* SrcImage=NULL; int fps=cvGetCaptureProperty(SrcCapture,CV_CAP_PROP_FPS); //获取视频文件信息 CvSize size=cvSize(cvGetCaptureProperty(SrcCapture,CV_CAP_PROP_FRAME_WIDTH),cvGetCaptureProperty(SrcCapture,CV_CAP_PROP_FRAME_HEIGHT)); CvVideoWriter *VideoWriter=cvCreateVideoWriter("e:\\vedio\\3.avi",CV_FOURCC(‘X‘,‘V‘,‘I‘,‘D‘),fps,size); //创建写入文件信息 SrcImage=cvQueryFrame(SrcCapture); IplImage* Gray=cvCreateImage(cvGetSize(SrcImage),8,1); while(1) { SrcImage=cvQueryFrame(SrcCapture); //获取每一帧图像 if(SrcImage==NULL) { break; } cvShowImage("src",SrcImage); cvCvtColor(SrcImage,Gray,CV_BGR2GRAY); cvShowImage("GRAY",Gray); cvWriteFrame(VideoWriter,Gray); //保存文件 char c=cvWaitKey(10); if(c==27) {break;} } //cvWaitKey(0); cvDestroyWindow("src"); cvDestroyWindow("GRAY"); cvReleaseCapture(&SrcCapture); cvReleaseVideoWriter(&VideoWriter); return 0; }
本文出自 “flyclc” 博客,请务必保留此出处http://flyclc.blog.51cto.com/1385758/1540031
opencv播放,变换和保存视频,布布扣,bubuko.com
原文地址:http://flyclc.blog.51cto.com/1385758/1540031