- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
cv::VideoWriter::write() 函数用于将图像帧写入视频文件。
该函数/方法将指定的图像写入视频文件。图像的大小必须与打开视频编写器时指定的大小相同。
函数原型
cpp
virtual void cv::VideoWriter::write
(
InputArray image
)
参数
- 参数image 被写入的帧。一般来说,期望的是 BGR 格式的彩色图像。
代码示例
cpp
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
// 设置视频的宽度和高度
int frameWidth = 640;
int frameHeight = 480;
// 设置视频编码器的 FourCC 代码
// 使用 XVID 编码器作为替代方案
int fourcc = cv::VideoWriter::fourcc( 'X', 'V', 'I', 'D' );
// 创建 VideoWriter 对象
cv::VideoWriter writer;
// 初始化 VideoWriter 对象
bool isOpened = writer.open( "output.avi", fourcc, 25, cv::Size( frameWidth, frameHeight ), true );
if ( !isOpened )
{
std::cerr << "Failed to initialize the video writer." << std::endl;
return -1;
}
// 创建一个示例帧
cv::Mat frame = cv::Mat::zeros( frameHeight, frameWidth, CV_8UC3 );
// 写入一帧到视频文件
writer.write( frame );
// 再次创建一个不同的帧
cv::Mat anotherFrame = cv::Mat::ones( frameHeight, frameWidth, CV_8UC3 ) * 255;
// 写入另一帧到视频文件
writer.write( anotherFrame );
// 释放资源
writer.release();
return 0;
}