将图片序列压缩成视频

原文链接:http://blog.csdn.net/carson2005/article/details/7085480

     有些时候,我们确实需要将一个图片序列压缩成视频文件,从而方便观看,或者给别人展示等。本文的目的就是提供一种解决方法。首先,需要安装opencv和xvid。前者是图像处理,计算机视觉领域的一个开源库(可以参考这里:http://blog.csdn.net/carson2005/article/details/6979806);后者是一种广泛应用的开源视频编解码器(这里有个简单的介绍:http://blog.csdn.net/carson2005/article/details/6553867)。本文利用opencv主要是从事一些图片文件的解压(jpg文件解压)和文件读取工作,当然,如果你的图片源是bmp这种非压缩格式,也可以不用opencv。下面给出参考代码,仅供参考;

[cpp]  view plain copy
  1. // VideoWriter.cpp : 定义控制台应用程序的入口点。  
  2. //  
  3. #include "stdafx.h"  
  4. #include "cv.h"  
  5. #include "highgui.h"  
  6. #include "iostream"  
  7. using namespace std;  
  8.   
  9. int _tmain(int argc, _TCHAR* argv[])  
  10. {  
  11.     double fps = 5;//视频压缩帧率  
  12.     CvSize size = cvSize(200, 200);//图片序列中每张图片的宽高  
  13.     CvVideoWriter* writer = cvCreateVideoWriter("c:/ChenLeeTest.avi", CV_FOURCC('X','V','I','D'),  
  14.         fps, size);  
  15.   
  16.     char str[200];  
  17.     for (int i=0; i<360; i++)  
  18.     {  
  19.         memset(str, '\0', 200*sizeof(char));  
  20.         sprintf(str, "c:/result/%d.jpg", i);  
  21.   
  22.         IplImage* colorIn = cvLoadImage(str);  
  23.   
  24.         int flag = cvWriteFrame(writer, colorIn);   
  25.         cout<<flag<<endl;  
  26.   
  27.         cvReleaseImage(&colorIn);  
  28.     }  
  29.     cvReleaseVideoWriter(&writer);  
  30.   
  31.     system("pause");  
  32.     return 0;  
  33. }  

转载于:https://www.cnblogs.com/java20130723/archive/2013/02/16/3212038.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值