使用OpenCV库函数将图片合成视频

将本地图片合成为视频

  在进行提取HOG特征、LBP特征以及SVM分类的过程中需要用到测试数据,将CDW_d2014数据集中的图片合成为视频进行验证

/////////////////////////////////////////////////////////////////////
//将本地图片保存为视频
#define ImageNo 1200//图片数  
void ImageToVideo()
{
	string Imgname;//图片名
	ifstream fin("F:/My/Unversity/Graduation/DataSet/CDW_2014/PETS2006/input/input.txt");//载入图片列表

	cv::VideoWriter Writer;
	string filepath = "F:/My/Unversity/Graduation/DataSet/CDW_2014/PETS2006/input.avi";

	Writer.open(filepath, VideoWriter::fourcc('M', 'P', '4', '2'), 25.0, Size(720, 576), 1);
	if (!Writer.isOpened())
	{
		cout << "无法保存视频" << endl;
		return;
	}

	for (int cou = 0; cou < ImageNo && getline(fin, Imgname); cou++)
	{
		Imgname = "F:/My/Unversity/Graduation/DataSet/CDW_2014/PETS2006/input/" + Imgname;//加上正样本的路径名
		cout << "处理:" << Imgname << endl;
		cv::Mat src = imread(Imgname, 1);//读取图片

		Writer << src;
	}
	
	cout << "保存成功" << endl;

	Writer.release();
	fin.clear();
}

int main()
{
	ImageToVideo();

	system("pause");
	return 0;
}

VideoWriteropen函数中参数如下

 CV_WRAP virtual bool open(const String& filename, int fourcc, double fps,
                      Size frameSize, bool isColor = true);

 其中fourcc,默认为-1即可,可以具体状况自己分析,易错的是frameSize,容易将宽度和高度写反或者输入错误,故需要清楚自己的图片分辨率。

你可能感兴趣的:(OpenCV,C/C++)