📅  最后修改于: 2023-12-03 14:52:47.483000             🧑  作者: Mango
在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中以视频形式保存帧!