OpenCV 中如何保存视频?

推荐答案

在 OpenCV 中,保存视频可以通过 cv2.VideoWriter 类来实现。以下是一个示例代码:

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

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

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

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

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

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

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

本题详细解读

1. cv2.VideoWriter 的初始化

cv2.VideoWriter 是 OpenCV 中用于保存视频的类。它的构造函数需要以下参数:

  • filename: 输出视频文件的名称,例如 'output.avi'
  • fourcc: 视频编码格式,通常使用 cv2.VideoWriter_fourcc 来指定。常见的编码格式包括:
    • 'XVID': 适用于 AVI 格式。
    • 'MJPG': 适用于 Motion-JPEG 编码。
    • 'MP4V': 适用于 MP4 格式。
  • fps: 视频的帧率,即每秒显示的帧数。
  • frameSize: 视频的分辨率,通常是一个元组 (width, height)

2. 写入视频帧

在视频捕获的循环中,每一帧图像可以通过 out.write(frame) 写入到视频文件中。frame 是一个 NumPy 数组,表示当前捕获的图像帧。

3. 释放资源

在视频捕获和写入完成后,必须调用 cap.release()out.release() 来释放资源。此外,使用 cv2.destroyAllWindows() 关闭所有 OpenCV 窗口。

4. 注意事项

  • 编码格式与文件扩展名匹配: 确保 fourcc 指定的编码格式与输出文件的扩展名匹配。例如,使用 'XVID' 编码时,文件扩展名应为 .avi
  • 分辨率一致: 确保写入的每一帧图像的分辨率与 VideoWriter 初始化时设置的分辨率一致,否则可能会导致写入失败或视频损坏。

通过以上步骤,你可以在 OpenCV 中成功保存视频。

纠错
反馈