OpenCV——读取视频文件并写入文件

1、代码如下:

#include<opencv2/opencv.hpp>     

using namespace cv;

//-----------------------------------【main()函数】--------------------------------------------    
//                描述:控制台应用程序的入口函数,我们的程序从这里开始    
//-------------------------------------------------------------------------------------------------    
void main()
{
//【1】从视频文件读入视频    
	VideoCapture capture("祝福片.avi");//读取视频文件
	if (!capture.isOpened())//没有打开视频文件的话,就返回。  
		return;
	Size size0 = Size(capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT));
	VideoWriter writer("out.avi", CV_FOURCC('X', 'V', 'I', 'D'), capture.get(CV_CAP_PROP_FPS), size0, true); 
//【2】循环显示每一帧    
	while (1)
	{
		Mat frame; //定义一个Mat变量,用于存储每一帧的图像    
		capture >> frame;  //读取当前帧 
		writer << frame;//等同于writer.write(frame);写入帧。
		if (frame.empty())
		{
			break;
		}
		imshow("Video", frame); //显示当前帧  
		waitKey(30); //延时30ms    
	}
	capture.release();//释放资源  
	destroyAllWindows();//关闭所有窗口  
}

2、效果如下:


3、程序运行目录下写入了一个名为“out.avi”的视频文件。


4、注意事项: 

1)写入视频前需安装对应的编解码器 (如:XVID)

2)生成视频是否支持彩色应与构造函数设置一致 

3)生成视频尺寸需与读取视频尺寸一致

猜你喜欢

转载自blog.csdn.net/ywxk1314/article/details/80056795