![](https://csdnimg.cn/release/download_crawler_static/86370696/bg1.jpg)
本节将介绍如何写入帧并创建视频文件。这样我们就完成了典型的视频处理过程:读取
视频流,处理其中的帧,然后在新的视频文件中存储结果。
OpenCV 用 cv::VideoWriter 类写视频文件。首先用 VideoWriter 类的 open 函数打开视频
文件:
bool VideoWriter::open(const string& filename, // 文件名
int fourcc, // 所用的编解码器
double fps, // 视频的帧速率
Size frameSize, // 帧的尺寸
bool isColor=true); // 彩色视频?
编解码器是一个软件模块,用于编码和解码视频流。编解码器定义了文件格式和存储信
息的压缩方案。用某种编解码器进行编码的视频,必须用同一种编解码器才能解码。通常使
用含有四个字符的代码来唯一地表示一种编解码器,例如 CV_FOURCC('P','I','M','1') 表示使用
MPEG-1 编解码器,完整的编解码器列表可参见:http://www.fourcc.org/codecs.php
在成功执行 open 后,即可通过调用 VideoWriter 类的 write 函数在文件中写入视频帧:
void VideoWriter::write(const Mat& image)
OK,让我们在 11.3 程序的基础上,开始编程吧!
1. 首先为 VideoProcessor 类增加 2 个新的成员属性:
2. 首先添加成员函数,用于获取输入视频的编解码器:
其中 codec 为输出参数,用于存储查询到的编解码器的字符形式,返回值为编解码器的
整数形式
3. 接下来添加成员函数,用于获取视频中帧的尺寸:
评论0