import cv2 as cv
import os.path
# 1.存储图片文件夹
path = './VideoToImage' # 存放视频图片的主目录
if not os.path.exists(path): # 如果不存在就创建文件夹
os.mkdir(path)
# 2.读取视频文件夹
filepath = './video' # 需要读取的视频的路径
pathDir = os.listdir(filepath) # 获取文件夹中文件名称
# 3.截视频帧数
for allDir in pathDir: # 逐个读取视频文件
a = 1 # 图片计数-不改
c = 1 # 帧数计数-不改
videopath = r'./video/'+allDir # 视频文件路径
vc = cv.VideoCapture(videopath) # 读入视频文件
# 存储视频的子目录
path = './VideoToImage/'+allDir.split('.')[0]
if not os.path.exists(path): # 如果不存在就创建文件夹
os.mkdir(path)
if vc.isOpened():
rval , frame = vc.read()
else:
rval = False
timeF = 4 # 帧数间隔
while rval:
rval,frame = vc.read() # 分帧读取视频
if rval==False:
break
if(c%timeF==0):
cv.imwrite(path+'/'+str(a)+'.jpg',frame) # 保存路径
a = a+1
c = c+1
cv.waitKey(1)
vc.release()
目录结构:

video中存放视频,VideoToImage存放截取的图片。

本文介绍了如何使用Python将视频中的帧转换为图片,存储在特定目录下,适用于自动化处理大量视频素材。通过cv2库操作,实现视频文件读取、帧截取并按设定间隔保存图片。

2383

被折叠的 条评论
为什么被折叠?



