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)生成视频尺寸需与读取视频尺寸一致