OpenCV实战(26)——视频序列处理
0. 前言
视频信号包含丰富的视觉信息,视频由一系列图像组成,每一图像称为一帧 (frame
),这些图像以固定的时间间隔(通过指定帧率,单位为秒/帧)拍摄并显示运动场景。随着计算机算力的提升,现在已经可以对视频序列执行复杂的视觉分析,处理速度已经接近甚至快于实际视频帧率 (frame rate
)。本节将学习如何读取、处理和存储视频序列。
1. 读取视频序列
为了处理视频序列,我们需要能够读取视频的每一帧。OpenCV
提供了一个易于使用的类 cv::VideoCapture
,用于从视频文件、USB
或 IP
摄像机中提取帧数据。为了读取视频序列帧,需要创建一个 cv::VideoCapture
类的实例,然后循环提取每个视频帧。
(1) 首先打开待读取的视频,并检查视频是否已成功打开:
int main()
{
// 打开视频文件
cv::VideoC