OpenCV VideoCapture

2025年1月8日 | 阅读需时 2 分钟

OpenCV 提供了 VideoCature() 函数,用于处理摄像头。 我们可以执行以下任务

  • 读取视频、显示视频和保存视频。
  • 从摄像头捕获并显示它。

从摄像头捕获视频

OpenCV 提供了一个简单的界面来捕获摄像头的实时流(网络摄像头)。 它将视频转换为灰度并显示它。

我们需要创建一个 VideoCapture 对象来捕获视频。 它接受设备索引或视频文件的名称。 指定相机的数字称为设备索引。 我们可以通过传递 O 或 1 作为参数来选择相机。 之后,我们可以逐帧捕获视频。

cap.read() 返回一个布尔值(True/False)。如果正确读取帧,它将返回 True。

播放文件中的视频

我们可以播放文件中的视频。 这类似于通过将相机索引更改为文件名来从相机捕获。 对于 cv2.waitKey() 函数,时间必须适当,如果时间过长,视频将变慢。 如果时间太短,视频将非常快。

保存视频

cv2.imwrite() 函数用于将视频保存到文件中。 首先,我们需要创建一个 VideoWriter 对象。 然后,我们应该指定 FourCC 代码和每秒帧数 (fps)。 帧大小应在函数中传递。

FourCC 是一个 4 字节代码,用于标识视频编解码器。 下面给出了保存视频的示例。

它会将视频保存到所需的位置。 运行上面的代码并查看输出。