【基础】 VideoWriter类
OpenCV中的cv2.VideoWriter类可以将图片序列保存成视频文件,也可以修改视频的各种属性,还可以完成对视频类型的转换。
1. 构造函数
OpenCV为cv2.VideoWriter类提供了构造函数,用它来实现初始化工作。该函数的语法格式是:
<VideoWriter object> = cv2.VideoWriter(filename, fourcc, fps, frameSize[,isColor])
● filename指定输出目标视频的存放路径和文件名。如果指定的文件名已经存在,则会覆盖这个文件。
● fourcc表示视频编/解码类型(格式)。在OpenCV中用函数cv2.VideoWriter_fourcc()来指定视频编码格式。cv2.VideoWriter_fourcc()有4个字符参数。这4个字符参数构成了编/解码器的“4字标记”,每个编/解码器都有一个这样的标记。下面列出几个常用的标记。
● cv2.VideoWriter_fourcc('I', '4', '2', '0')表示未压缩的YUV颜色编码格式,色度子采样为4:2:0。该编码格式具有较好的兼容性,但产生的文件较大,文件扩展名为.avi。
● cv2.VideoWriter_fourcc('P', 'I', 'M', 'I')表示MPEG-1编码类型,生成的文件的扩展名为.avi。
● cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')表示MPEG-4编码类型。如果希望得到的视频大小为平均值,可以选用这个参数组合。该组合生成的文件的扩展名为.avi。
● cv2.VideoWriter_fourcc('T', 'H', 'E', 'O')表示Ogg Vorbis编码类型,文件的扩展名为.ogv。
● cv2.VideoWriter_fourcc('F', 'L', 'V', 'I')表示Flash视频,生成的文件的扩展名为.flv。
● fps为帧速率。
● frameSize为每一帧的长和宽。
● isColor表示是否为彩色图像。
2. write函数
cv2.VideoWriter类中的函数cv2.VideoWriter.write()用于写入下一帧视频。该函数的语法格式为:
cv2.VideoWriter.write(image)
image是要写入的视频帧。通常情况下,要求彩色图像的格式为BGR模式。
在调用该函数时,直接将要写入的视频帧传入该函数即可。例如,有一个视频帧为frame,要将其写入上面的示例中名为out的cv2.VideoWriter类对象内,则使用语句:
out.write(frame)
上述语句会把frame传入名为output.avi的out对象内。
3. 释放
在不需要cv2.VideoWriter类对象时,需要将其释放。释放该类对象时所使用的是函数cv2.VideoWriter.release()。该函数的语法格式是:
cv2.VideoWriter.release()