opencv录制视频c++
时间: 2023-09-10 14:13:17 浏览: 95
使用OpenCV来录制视频可以使用VideoWriter类。以下是一个简单的例子:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
// 打开摄像头
VideoCapture cap(0);
if(!cap.isOpened()){
cout << "无法打开摄像头" << endl;
return -1;
}
// 设置视频输出的属性
int frame_width = cap.get(CAP_PROP_FRAME_WIDTH);
int frame_height = cap.get(CAP_PROP_FRAME_HEIGHT);
VideoWriter video("output.avi", VideoWriter::fourcc('M','J','P','G'), 10, Size(frame_width,frame_height));
// 检查视频输出是否成功打开
if(!video.isOpened()){
cout << "无法打开视频输出文件" << endl;
return -1;
}
// 录制视频
while(true){
Mat frame;
cap >> frame;
video.write(frame);
imshow("录制中...", frame);
// 按下ESC键退出录制
char c = (char)waitKey(25);
if(c==27)
break;
}
// 清理资源
cap.release();
video.release();
destroyAllWindows();
return 0;
}
```
在上面的代码中,我们打开了默认摄像头(通常是编号为0的摄像头),并设置了视频输出的属性。然后,在无限循环中,我们从摄像头中读取一帧图像,并将其写入输出视频文件中。每次循环中,我们还显示当前录制的帧。按下ESC键可以退出录制。
最后,我们要记得释放资源,包括释放摄像头和视频输出。