opencv c++保存视频
时间: 2023-10-15 21:07:54 浏览: 209
Face_Recognition.rar_OpenCV_C++_
要在 OpenCV C++ 中保存视频,可以使用 VideoWriter 类。以下是保存视频的基本步骤:
1. 创建 VideoWriter 对象并设置输出文件名、编解码器、帧率和视频尺寸。
2. 循环读取每一帧图像,并将其写入 VideoWriter 对象中。
3. 最后,释放 VideoWriter 对象和所有图像。
下面是一个示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture cap(0); // 打开摄像头
if (!cap.isOpened()) // 检查摄像头是否打开
{
std::cout << "Failed to open camera!" << std::endl;
return -1;
}
int fourcc = VideoWriter::fourcc('M', 'J', 'P', 'G'); // 定义编解码器
int fps = 30; // 定义帧率
Size frameSize(cap.get(CAP_PROP_FRAME_WIDTH), cap.get(CAP_PROP_FRAME_HEIGHT)); // 定义视频尺寸
VideoWriter writer("output.avi", fourcc, fps, frameSize); // 创建 VideoWriter 对象
while (true)
{
Mat frame;
cap >> frame; // 读取一帧图像
if (frame.empty()) // 检查图像是否为空
{
std::cout << "Failed to capture frame!" << std::endl;
break;
}
writer.write(frame); // 将图像写入 VideoWriter 对象中
imshow("Video", frame); // 显示图像
if (waitKey(30) == 27) // 按下 ESC 键退出循环
{
break;
}
}
writer.release(); // 释放 VideoWriter 对象
cap.release(); // 释放摄像头
destroyAllWindows(); // 关闭所有窗口
return 0;
}
```
在此示例中,我们使用了默认摄像头,并将输出文件命名为“output.avi”。你可以通过更改文件名称和路径以及选择其他编解码器和帧率来定制保存视频的设置。
阅读全文