linux使用opencv录制视频
时间: 2024-05-09 11:13:31 浏览: 129
在Linux系统中使用OpenCV录制视频可以通过VideoCapture和VideoWriter两个类来实现。具体步骤如下:
1. 首先,需要安装OpenCV库,可以使用apt-get等命令进行安装。
2. 打开一个视频文件或者摄像头,可以通过VideoCapture类实现。
3. 创建一个VideoWriter对象,设置输出视频的文件名、编码器、帧率等参数。
4. 通过VideoCapture读取每一帧图像,处理图像并保存到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()) {
cerr << "ERROR: Unable to open the camera" << endl;
return 1;
}
// 获取摄像头的分辨率
int frame_width = cap.get(cv::CAP_PROP_FRAME_WIDTH);
int frame_height = cap.get(cv::CAP_PROP_FRAME_HEIGHT);
// 创建VideoWriter对象
VideoWriter video("output.avi", cv::VideoWriter::fourcc('M', 'J', 'P', 'G'), 10, Size(frame_width, frame_height));
while (true) {
Mat frame;
cap >> frame; // 读取摄像头的每一帧
if (frame.empty()) {
cerr << "ERROR: Unable to grab from the camera" << endl;
break;
}
// 对图像进行处理
cvtColor(frame, frame, COLOR_BGR2GRAY);
// 写入视频
video.write(frame);
imshow("Video", frame);
// 按下ESC键退出循环
if (waitKey(1) == 27) {
break;
}
}
cap.release();
video.release();
destroyAllWindows();
return 0;
}
```
阅读全文