opencv视频处理c++
时间: 2023-12-11 14:33:37 浏览: 105
OpenCV是一个流行的计算机视觉库,它提供了许多用于图像和视频处理的函数和类。下面是一些用于视频处理的基本类和函数:
1. VideoCapture类:用于从摄像头或视频文件中读取帧。以下是一个简单的示例,演示如何从摄像头读取帧并显示它们:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture cap(0); //打开默认摄像头
if (!cap.isOpened()) //检查摄像头是否成功打开
return -1;
Mat frame;
while (true)
{
cap.read(frame); //读取帧
imshow("Video", frame); //显示帧
if (waitKey(30) == 27) //等待按键,如果按下ESC键则退出
break;
}
return 0;
}
```
2. VideoWriter类:用于将帧写入视频文件。以下是一个简单的示例,演示如何从摄像头读取帧并将它们写入视频文件:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture cap(0); //打开默认摄像头
if (!cap.isOpened()) //检查摄像头是否成功打开
return -1;
int fourcc = VideoWriter::fourcc('M', 'J', 'P', 'G'); //指定视频编码格式
double fps = 30.0; //指定帧率
Size frameSize(cap.get(CAP_PROP_FRAME_WIDTH), cap.get(CAP_PROP_FRAME_HEIGHT)); //获取帧大小
VideoWriter writer("output.avi", fourcc, fps, frameSize); //创建VideoWriter对象
Mat frame;
while (true)
{
cap.read(frame); //读取帧
writer.write(frame); //将帧写入视频文件
imshow("Video", frame); //显示帧
if (waitKey(30) == 27) //等待按键,如果按下ESC键则退出
break;
}
return 0;
}
```
3. cv::resize函数:用于调整图像大小。以下是一个简单的示例,演示如何将摄像头捕获的帧调整为指定大小:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture cap(0); //打开默认摄像头
if (!cap.isOpened()) //检查摄像头是否成功打开
return -1;
Mat frame;
while (true)
{
cap.read(frame); //读取帧
resize(frame, frame, Size(640, 480)); //调整帧大小
imshow("Video", frame); //显示帧
if (waitKey(30) == 27) //等待按键,如果按下ESC键则退出
break;
}
return 0;
}
```
阅读全文
相关推荐













