您的位置:首页 > 运维架构

OpenCV学习(七)之写入AVI视频文件

2014-11-26 15:17 411 查看
示例代码:

#include "highgui.h"
#include "cv.h"

using namespace cv;

//write a avi video
int main(int argc,char** argv)
{
CvCapture* capture = 0;
capture = cvCreateFileCapture("test.avi");
if(!capture)
{
return -1;
}
IplImage* bgr_frame = cvQueryFrame(capture);  //init the video read
double fps = cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);  //frame rate
CvSize size = cvSize((int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH),cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT));
CvVideoWriter* writer = cvCreateVideoWriter("out.avi",CV_FOURCC('M','J','P','G'),fps,size);
IplImage* logPolarFrame = cvCreateImage(size,IPL_DEPTH_8U,3);
while((bgr_frame = cvQueryFrame(capture)) != NULL)
{
cvLogPolar(bgr_frame,logPolarFrame,
cvPoint2D32f(bgr_frame->width/2,bgr_frame->height/2),
80,
CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS
/*CV_INTER_LINEAR | CV_WARP_FILL_OUTLIERS | CV_WARP_INVERSE_MAP*/);
cvWriteFrame(writer,logPolarFrame);
}
cvReleaseVideoWriter(&writer);
cvReleaseImage(&logPolarFrame);
cvReleaseCapture(&capture);
return 0;
}


使用了CvSizeCvVideoWriter类,以及其中的函数cvSize、cvCreateVideoWriter、cvWriteFrame。在每帧图像的变换中使用了cvLogPolar极坐标变换函数。程序运行完毕后你会在工程目录下看见一个名为out.avi的视频文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: