将图片序列压缩成视频

       有些时候,我们确实需要将一个图片序列压缩成视频文件,从而方便观看,或者给别人展示等。本文的目的就是提供一种解决方法。首先,需要安装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;
}


 

你可能感兴趣的:(c,工作,System,360,图像处理)