cv2 抽取相同帧数
时间: 2023-09-08 14:01:27 浏览: 119
cv2是Python中常用的图像处理库,它提供了丰富的函数和方法来处理图像和视频。要抽取相同帧数,可以使用cv2的VideoCapture函数来读取视频并设置帧数,然后使用cv2的VideoWriter函数将相应帧数的帧保存成视频。下面是一个简单的示例代码:
```python
import cv2
# 读取视频
video_path = "input_video.mp4"
cap = cv2.VideoCapture(video_path)
# 获取视频宽度和高度
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 获取视频帧率
fps = cap.get(cv2.CAP_PROP_FPS)
# 设置相同帧数
frame_rate = 10
# 创建输出视频文件
output_path = "output_video.mp4"
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
out = cv2.VideoWriter(output_path, fourcc, frame_rate, (width, height))
# 逐帧读取并保存视频
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
# 每隔指定帧数保存一帧
if cap.get(cv2.CAP_PROP_POS_FRAMES) % (fps // frame_rate) == 0:
out.write(frame)
# 显示视频帧
cv2.imshow("Frame", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
out.release()
cv2.destroyAllWindows()
```
在上述代码中,我们首先使用cv2的VideoCapture函数读取视频。然后,我们使用cap.get函数获取视频的宽度、高度和帧率。接下来,我们设置相同的帧数,并使用cv2的VideoWriter函数创建一个输出视频文件。接着,我们使用while循环逐帧读取原视频,并将每隔一定帧数的帧保存到输出视频文件中。最后,我们释放资源并关闭窗口。
通过以上代码,我们可以抽取原视频中相同帧数的帧,并保存为一个新的视频文件。
阅读全文