十一、视频处理与分析
- 视频的读取与显示
- 读取方法:OpenCV 可以读取视频文件和摄像头视频流。对于视频文件,使用
VideoCapture
类,通过传入视频文件路径来初始化。对于摄像头视频流,可以传入摄像头设备编号(通常 0 表示默认摄像头)。例如:cv::VideoCapture cap("video.mp4");
或者cv::VideoCapture cap(0);
。 - 参数设置:可以设置视频的帧率、分辨率等参数。帧率决定了视频播放的速度,分辨率则影响图像的清晰度。通过
cap.set()
函数来实现,比如cap.set(cv::CAP_PROP_FPS, 30);
设置帧率为 30,cap.set(cv::CAP_PROP_FRAME_WIDTH, 640);
和cap.set(cv::CAP_PROP_FRAME_HEIGHT, 480);
设置分辨率。 - 显示方式:显示视频帧有不同的方式。可以在窗口中显示,使用
imshow()
函数,创建一个窗口并显示当前帧。也可以将视频帧保存为图像序列,通过imwrite()
函数在每一帧的读取循环中实现。
- 读取方法:OpenCV 可以读取视频文件和摄像头视频流。对于视频文件,使用
- 视频中的目标跟踪
- 传统方法:
- 帧间差分:基于相邻帧之间的差异来检测运动目标。原理是对相邻两帧或多帧图像做差运算,当差值大于
- 传统方法: