📜  如何在opencv python中以视频形式保存帧(1)

📅  最后修改于: 2023-12-03 14:52:47.483000             🧑  作者: Mango

如何在OpenCV Python中以视频形式保存帧

在OpenCV Python中,我们可以很容易地捕捉视频流并对每个帧进行操作。但是,有时我们需要将帧以视频形式保存下来。在本文中,我们将介绍如何在OpenCV Python中以视频形式保存帧。

步骤一:导入库

在我们开始之前,让我们导入必要的库:

import cv2
import numpy as np
步骤二:捕捉视频流

首先,我们将使用VideoCapture对象来捕捉视频流:

cap = cv2.VideoCapture(0)

这将使用默认摄像头捕捉视频流。您还可以指定视频文件的路径。

步骤三:创建视频编写器

接下来,我们将创建一个视频编写器,该编写器将把每个帧写入视频文件中:

fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))

在此,我们指定了编解码器、帧速率和帧大小。

步骤四:写入帧

现在,我们可以开始将每个帧写入输出文件中。在这个例子中,我们将捕捉视频流并将其显示到屏幕上。我们还将每个帧写入输出文件:

while True:
    ret, frame = cap.read()
    if ret == True:
        # 显示帧
        cv2.imshow('frame', frame)
        # 将帧写入输出文件
        out.write(frame)
        # 按Q键退出
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

在此,我们使用cap.read()方法读取每个帧。如果读取成功,我们将其显示在屏幕上,并使用out.write(frame)方法将其写入输出文件中。最后,按下q键退出程序。

步骤五:释放资源

当我们完成程序的操作时,我们应该释放资源。在这个例子中,我们应该释放摄像头和视频编写器:

cap.release()
out.release()
cv2.destroyAllWindows()

这将释放摄像头、关闭输出文件,关闭所有窗口。

完整代码:
import cv2
import numpy as np

# 捕捉视频流
cap = cv2.VideoCapture(0)

# 创建视频编写器
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))

while True:
    ret, frame = cap.read()
    if ret == True:
        # 显示帧
        cv2.imshow('frame', frame)
        # 将帧写入输出文件
        out.write(frame)
        # 按Q键退出
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()

这个例子将在当前目录下创建一个名为output.avi的视频文件,并将每个捕捉到的帧写入其中。

希望这篇文章可以帮助您学习如何在OpenCV Python中以视频形式保存帧!