OpenCV 中如何读取视频?

推荐答案

在 OpenCV 中,可以使用 cv2.VideoCapture 类来读取视频。以下是一个简单的示例代码:

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

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

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

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

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

本题详细解读

1. cv2.VideoCapture

cv2.VideoCapture 是 OpenCV 中用于读取视频或捕获摄像头视频流的类。它可以接受两种类型的参数:

  • 视频文件路径:如 'video.mp4',用于读取本地视频文件。
  • 摄像头设备索引:如 0,表示使用默认摄像头。

2. cap.read() 方法

cap.read() 方法用于逐帧读取视频。它返回两个值:

  • ret:一个布尔值,表示是否成功读取到帧。如果读取成功,返回 True;如果视频结束或读取失败,返回 False
  • frame:读取到的视频帧,是一个 NumPy 数组。

3. cv2.imshow() 方法

cv2.imshow() 用于显示当前帧。它接受两个参数:

  • 窗口名称:如 'Frame',用于标识显示窗口。
  • 帧数据:即 frame,是要显示的图像数据。

4. cv2.waitKey() 方法

cv2.waitKey() 用于等待用户按键输入。它接受一个参数:

  • 延迟时间:以毫秒为单位,如 25,表示每帧显示 25 毫秒。

5. 释放资源

在视频读取完成后,必须调用 cap.release() 释放 VideoCapture 对象,并调用 cv2.destroyAllWindows() 关闭所有显示窗口,以释放系统资源。

通过以上步骤,你可以在 OpenCV 中成功读取并显示视频。

纠错
反馈