Opencv写视频文件

本文介绍使用OpenCV库创建视频文件的过程。主要内容包括使用cvCreateVideoWriter设置视频参数,如分辨率、帧率等;使用cvWriteFrame将图像帧写入视频;最后使用cvReleaseVideoWriter释放资源。通过示例代码展示了从图像文件夹读取图片,调整尺寸,并将这些图片拼接成视频的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址: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[])
{
                CvSize size = 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;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值