QString fileName = QFileDialog::getSaveFileName(this, tr("Save Video"), ".", tr("Video Files (*.avi *.mp4)")); if (!fileName.isEmpty()) { int codec = cv::VideoWriter::fourcc('M', 'J', 'P', 'G');//设置视频编码格式 double fps = 30;//设置视频帧率 cv::VideoWriter writer(fileName.toStdString(), codec, fps, frame->size(), true);//创建VideoWriter对象 }
时间: 2023-06-26 12:04:42 浏览: 119
QString的常用方法(小结)
5星 · 资源好评率100%
这段代码是使用 OpenCV 库来保存视频文件。首先,通过调用 QFileDialog::getSaveFileName() 函数弹出一个对话框,让用户选择保存视频的文件名和路径,并指定文件类型为 .avi 或 .mp4。如果用户选择了文件并点击了保存按钮,则会得到文件名 fileName。
接下来,设置视频编码格式为 MJPG(Motion-JPEG),帧率为 30 帧每秒。然后创建一个 cv::VideoWriter 对象,将文件名转换为标准字符串并传入构造函数中,同时传入编码格式、帧率、视频尺寸和 isColor 参数(是否为彩色视频)。最后,可以通过调用 cv::VideoWriter 的 write() 函数将帧写入视频文件中。
需要注意的是,在这段代码中并没有写入任何帧到视频文件中。你需要在处理视频帧的代码中添加类似以下的语句:
```c++
// 处理视频帧
cv::Mat frame = ...;
// 将帧写入视频文件
if (writer.isOpened())
{
writer.write(frame);
}
```
这样,处理完所有的视频帧后,视频文件就保存成功了。
阅读全文