Opencv写视频文件

来源:互联网 发布:mac压缩包解压错误 编辑:程序博客网 时间:2024/05/01 22:11
原文地址:Opencv写视频文件作者:Single
 
Opencv写视频文件核心函数
     cvCreateVideoWriter
    cvWriteFrame 
    cvReleaseVideoWriter


cvCreateVideoWriter
    cvCreateVideoWriter (const char*filename, int fourcc, double fps, CvSize frame_size, int is_color=1);
          filename :指定新建视频的文件名字。
         fourcc :视频压缩的编码格式,目前有多种流行的编解码格式,但无论采用哪种格式,都必须确认自己  的 电脑上安装了这种格式(编解码器的安装是独立于 opencv的)。
     例如: CV_FOURCC('X','V','I','D')
         fps :帧率
           frame_size: 视频帧的大小。
        is_color: 如果非零,编 码器将希望得到彩色帧并进行编码 ,否则,是灰度帧

cvWriteFrame
         功能:把一帧图像写入到视频文件

cvReleaseVideoWriter

       释放视频写入设备,如果不释放,会导致写视频失败,所以一定要记得释放。
 
 
代码:
 
#include "stdafx.h"

#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char*argv[])
{
                CvSizesize = cvSize(480,360);
                 double fps =15;

                 //创建一个写视频设备writer
                CvVideoWriter*writer = cvCreateVideoWriter("F:\pf_\opencv\out.avi" ,CV_FOURCC('X', 'V','I' ,'D'),fps,size);


                 
                 int image_id = 1;
                 char filename[256];

                sprintf(filename, "F:\pf_\image\%d.jpg" ,image_id );

                 //加载图像
                IplImage*src = cvLoadImage(filename);

                 if(!src)
                {
                                 return 0;
                }

                 //为aresize后的图像分配空间
                IplImage*src_resize = cvCreateImage(size,8,3);
                

                cvNamedWindow( "avi");

                 while(src)
                {
                                 
                                cvShowImage( "avi",src_resize);
                                cvWaitKey(1);

                                 
                                cvResize(src, src_resize);

                                 
                                cvWriteFrame(writer, src_resize);

                                 
                                cvReleaseImage(&src);

                                 //加载文件夹中的下一幅图像
                                image_id++;
                                sprintf(filename, "F:\pf_\image\%d.jpg" ,image_id );
                                src= cvLoadImage(filename);

                }

                 
                cvReleaseVideoWriter(&writer);

                 
                cvReleaseImage(&src_resize);

                 return 0;
}
 
0 0
原创粉丝点击