c++写一段控制外部摄像机拍摄视频并保存
时间: 2024-01-18 16:04:08 浏览: 10
以下是使用C++和OpenCV库控制外部摄像机拍摄视频并保存的示例代码:
```c++
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
// 打开摄像机
VideoCapture cap(0);
// 定义要保存的视频格式
int fourcc = VideoWriter::fourcc('M', 'J', 'P', 'G');
double fps = 20.0;
Size frameSize(cap.get(CAP_PROP_FRAME_WIDTH), cap.get(CAP_PROP_FRAME_HEIGHT));
VideoWriter writer("output.avi", fourcc, fps, frameSize);
// 检查摄像机是否打开成功
if (!cap.isOpened() || !writer.isOpened()) {
cout << "Error opening camera or file" << endl;
return -1;
}
// 循环获取每一帧图像
Mat frame;
while (cap.read(frame)) {
// 显示图像
imshow("frame", frame);
// 将图像写入保存视频的文件中
writer.write(frame);
// 按q键退出循环
if (waitKey(1) == 'q') {
break;
}
}
// 释放资源
cap.release();
writer.release();
destroyAllWindows();
return 0;
}
```
这个代码中,我们首先打开了摄像机,并定义了要保存的视频格式。然后在循环中,我们获取摄像机中的每一帧图像,并将其显示出来。同时,我们也将每一帧图像写入保存视频的文件中。最后,当按下q键时,程序退出循环并释放资源。