Python OpenCV 视频帧截取:每秒10帧保存图片
以下是利用OpenCV对采集到的视频以每秒10帧进行截取,将截取到的图片保存至相应文件夹中的Python代码:
import cv2
import os
# 打开视频文件
cap = cv2.VideoCapture('test.mp4')
# 获取视频帧率
fps = cap.get(cv2.CAP_PROP_FPS)
# 设置每秒截取的帧数
frame_interval = int(fps / 10)
# 创建保存帧的文件夹
if not os.path.exists('frames'):
os.makedirs('frames')
# 初始化帧计数器
frame_count = 0
while True:
# 读取一帧图像
ret, frame = cap.read()
if not ret:
break
# 每隔 frame_interval 帧保存一次
if frame_count % frame_interval == 0:
# 生成保存帧的文件名
filename = 'frames/frame{:04d}.jpg'.format(frame_count // frame_interval)
# 保存帧到文件
cv2.imwrite(filename, frame)
# 更新帧计数器
frame_count += 1
# 关闭视频文件
cap.release()
上述代码中,我们首先打开视频文件并获取其帧率。然后设置每秒截取的帧数(这里设置为 10 帧),并创建保存帧的文件夹。接着进入循环,每次读取一帧图像并判断是否到达了截取的时间点。如果是,则生成保存帧的文件名,并将帧保存到文件中。最后更新帧计数器并关闭视频文件。
在运行上述代码前,请确保已经安装了OpenCV库。另外,需要将视频文件命名为'test.mp4'并与Python代码放在同一目录下。截取的帧将被保存在名为'frames'的文件夹中。
原文地址: https://www.cveoy.top/t/topic/nzay 著作权归作者所有。请勿转载和采集!