您的位置:首页 > 其它

将图片序列压缩成视频

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

// VideoWriter.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "iostream"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
double fps = 5;//视频压缩帧率
CvSize size = cvSize(200, 200);//图片序列中每张图片的宽高
CvVideoWriter* writer = cvCreateVideoWriter("c:/ChenLeeTest.avi", CV_FOURCC('X','V','I','D'),
fps, size);

char str[200];
for (int i=0; i<360; i++)
{
memset(str, '\0', 200*sizeof(char));
sprintf(str, "c:/result/%d.jpg", i);

IplImage* colorIn = cvLoadImage(str);

int flag = cvWriteFrame(writer, colorIn);
cout<<flag<<endl;

cvReleaseImage(&colorIn);
}
cvReleaseVideoWriter(&writer);

system("pause");
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息