zoukankan      html  css  js  c++  java
  • 将图片序列压缩成视频

    原文链接: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。下面给出参考代码,仅供参考;

    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. }  

  • 相关阅读:
    阿里巴巴的字体图标库不错
    SQL语句一次INSERT多条记录的方法
    Oracle中改变表的Owner和tablespace
    QQ在线状态的使用
    gtest
    Git
    gRPC安装的小问题
    蓝桥杯试题 基础练习 查找整数
    Product Backlog
    本周工作量统计
  • 原文地址:https://www.cnblogs.com/java20130723/p/3212038.html
Copyright © 2011-2022 走看看