cv::mat 保存为视频
时间: 2024-05-03 16:21:27 浏览: 78
您可以使用cv::VideoWriter类将cv::Mat保存为视频。以下是一个示例代码:
```c++
#include <opencv2/opencv.hpp>
int main() {
cv::VideoCapture cap(0); // 打开摄像头
if (!cap.isOpened()) {
std::cout << "Failed to open camera!" << std::endl;
return -1;
}
cv::Mat frame;
cap.read(frame); // 读取一帧图像以获取图像尺寸和格式
int fourcc = cv::VideoWriter::fourcc('X', 'V', 'I', 'D'); // 设置编码器
int fps = 30; // 设置帧率
cv::Size size(frame.cols, frame.rows); // 设置视频尺寸
cv::VideoWriter writer("output.avi", fourcc, fps, size); // 创建VideoWriter对象
while (cap.read(frame)) {
writer.write(frame); // 将帧写入视频
}
writer.release(); // 释放VideoWriter对象
return 0;
}
```
在上面的代码中,我们首先打开了一个摄像头并读取了一帧图像。然后,我们设置了视频编码器(XVID)和帧率(30 fps),并使用帧大小创建了一个cv::VideoWriter对象。接下来,我们循环读取摄像头中的帧,并将它们写入视频中。最后,我们释放了cv::VideoWriter对象。视频将保存在名为“output.avi”的文件中。
阅读全文