frame2Video

#include <stdio.h>
#include "cv.h"
#include "highgui.h"
int   main ( void )
{        
          IplImage *   img   =   NULL // 存放图像
          CvVideoWriter   * writer = NULL ; // 写视频结构
          int   i   =   0 ; // 存放的文件名开始
          char   image_name [ 13 ];   // 存放图像名
          int   num_frm ;
          int   isColor   =   1 // 如果非零,编码器将希望得到彩色帧并进行编码;否则,是灰度帧(只有在Windows下支持这个标志)。
          int   fps           =   25 // 图像帧率,格式工厂会让你很轻松的了解视频相关信息
          int   frameW   =   480 // 帧宽,根据你需要的大小修改
          int   frameH   =   360 // 帧高,同上
          char   key ;
          printf ( "------------- image to video ... ---------------- \n " );          writer = cvCreateVideoWriter ( "out.avi" , CV_FOURCC ( 'D' , 'I' , 'V' , 'X' ), fps , cvSize ( frameW , frameH ), isColor ); // 创建视频文件写入器
          printf ( " \t video height : %d \n\t video width : %d \n\t fps : %d \n " ,   frameH ,   frameW ,   fps );
          cvNamedWindow "mainWin" ,   CV_WINDOW_AUTOSIZE  );  //创建窗口
          num_frm   =   448 ; //最后一帧
          while ( i < num_frm // 选择你需要停止的最后一帧图像,我这里num_frm=21000,可自定义
          {
                    sprintf ( image_name ,   ". \\ pic \\ %d.jpg" ,     i ++ );
                    img   =   cvLoadImage ( image_name ,   - 1 );  // 读取图像
                    if ( ! img )
                    {
                              printf ( "Could not load image file... \n " );
                              exit ( 0 );
                    }
                    cvShowImage ( "mainWin" ,   img );  // 显示图像
                    key   =   cvWaitKey ( 20 );
                    cvWriteFrame ( writer ,   img );  //将该帧图像写入视频
                    cvReleaseImage ( & img );  // 释放图像内存
          }
          cvReleaseVideoWriter ( & writer );  // 释放结构
          cvDestroyWindow ( "mainWin" );  // 销毁窗口
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值