opencv c++ 保存视频截图代码
时间: 2023-07-24 20:29:48 浏览: 50
好的,以下是 C++ 中使用 OpenCV 保存视频截图的代码示例:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap(0); // 打开默认相机
if (!cap.isOpened()) // 检查是否成功打开相机
{
cerr << "Error: Unable to open the camera!" << endl;
return -1;
}
namedWindow("Camera Feed", WINDOW_AUTOSIZE); // 创建窗口
Mat frame;
string filename = "screenshot.jpg"; // 保存的文件名
while (true)
{
cap >> frame; // 读取当前帧
if (frame.empty()) // 检查是否成功读取帧
{
cerr << "Error: Unable to read the frame!" << endl;
break;
}
imshow("Camera Feed", frame); // 显示当前帧
char c = waitKey(5); // 等待用户按键
if (c == 's') // 如果用户按下 "s" 键
{
imwrite(filename, frame); // 保存当前帧为图像文件
cout << "Screenshot saved as " << filename << endl;
}
else if (c == 27) // 如果用户按下 "Esc" 键
{
break; // 退出循环
}
}
cap.release(); // 释放相机资源
destroyAllWindows(); // 关闭窗口
return 0;
}
```
这个代码示例使用了 OpenCV 的 VideoCapture 类来读取相机帧,并使用 imshow() 函数显示当前帧。当用户按下 "s" 键时,它会使用 imwrite() 函数将当前帧保存为图像文件。如果用户按下 "Esc" 键,程序会退出循环并释放相机资源。