<请开始你的表演>

1. 引入头文件和命名空间

要在 C++ 中使用 VideoWriter 来写入视频,首先需要包含相应的头文件,以及使用命名空间,示例代码如下:

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

using namespace cv;
C++

2. 创建 VideoWriter 对象

使用 VideoWriter 类来创建一个可以写入视频的对象,需要指定输出文件名、视频的编解码方式(FourCC code)、帧率(FPS)以及视频的大小(宽度和高度)。示例代码如下:

std::string outputFile = "output.avi";
int fourCC = cv::VideoWriter::fourcc('M', 'J', 'P', 'G');
double fps = 30.0;
cv::Size frameSize(640, 480);

cv::VideoWriter writer(outputFile, fourCC, fps, frameSize);
C++

在上面的代码中,我们创建了一个名为 writer 的 VideoWriter 对象,将视频写入到名为 output.avi 的文件中,采用 MJPG 编解码方式,帧率为 30 帧 / 秒,视频大小为 640x480。

3. 写入视频帧

要将图像帧写入视频,需要将每一帧图像传递给 VideoWriter 的 write 函数。可以在一个循环中不断写入图像帧,直到完成整个视频的写入。示例代码如下:

cv::Mat frame;

while (/* 有图像帧可供写入 */) {
    // 从图像源获取一帧图像,存储在Mat对象frame中
    
    // 将帧写入视频
    writer.write(frame);
}
C++

在上面的代码中,我们通过循环读取图像帧,并将每一帧通过 write 函数写入视频。frame 是一个 cv::Mat 对象,代表一帧图像。

4. 释放资源

在写入完所有图像帧后,我们需要释放 VideoWriter 对象所占用的资源。示例代码如下:

// 释放资源
writer.release();
C++

以上代码中,我们通过调用 release 函数释放 VideoWriter 对象所占用的资源。

总结:

以上就是使用 VideoWriter 在 C++ 中写入视频的基本步骤。首先需要引入相应的头文件和命名空间,然后创建 VideoWriter 对象,并指定输出的视频文件名、编解码方式、帧率和大小。接下来通过循环逐帧写入图像帧,最后通过调用 release 函数释放资源。通过以上步骤,我们就能够使用 VideoWriter 在 C++ 中写入视频。