OpenCV 中如何获取视频的属性(如帧率、分辨率等)?

推荐答案

在 OpenCV 中,可以通过 cv2.VideoCapture 类的 get 方法来获取视频的属性。以下是一些常用的属性及其对应的属性 ID:

  • 帧率:cv2.CAP_PROP_FPS
  • 分辨率(宽度):cv2.CAP_PROP_FRAME_WIDTH
  • 分辨率(高度):cv2.CAP_PROP_FRAME_HEIGHT
  • 总帧数:cv2.CAP_PROP_FRAME_COUNT

示例代码如下:

-- -------------------- ---- -------
------ ---

- ------
----- - -----------------------------

- ----
--- - ---------------------------
----------- -------

- -----
----- - -----------------------------------
------ - ------------------------------------
------------ ------------------

- -----
----------- - -----------------------------------
------------ ---------------

- ------
---------------

本题详细解读

1. cv2.VideoCapture

cv2.VideoCapture 是 OpenCV 中用于读取视频文件的类。它可以从文件、图像序列或摄像头捕获视频流。

2. get 方法

get 方法用于获取视频的各种属性。它接受一个属性 ID 作为参数,并返回该属性的值。常用的属性 ID 包括:

  • cv2.CAP_PROP_FPS:获取视频的帧率(Frames Per Second)。
  • cv2.CAP_PROP_FRAME_WIDTH:获取视频帧的宽度。
  • cv2.CAP_PROP_FRAME_HEIGHT:获取视频帧的高度。
  • cv2.CAP_PROP_FRAME_COUNT:获取视频的总帧数。

3. 示例代码解析

  • video = cv2.VideoCapture('video.mp4'):打开视频文件 video.mp4
  • video.get(cv2.CAP_PROP_FPS):获取视频的帧率。
  • video.get(cv2.CAP_PROP_FRAME_WIDTH)video.get(cv2.CAP_PROP_FRAME_HEIGHT):分别获取视频帧的宽度和高度。
  • video.get(cv2.CAP_PROP_FRAME_COUNT):获取视频的总帧数。
  • video.release():释放视频对象,关闭视频文件。

4. 注意事项

  • 确保视频文件路径正确,否则 cv2.VideoCapture 会返回 None
  • 在获取属性之前,确保视频文件已成功打开。
  • 使用完 cv2.VideoCapture 对象后,务必调用 release() 方法释放资源。
纠错
反馈