推荐答案
在 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 中成功保存视频。