一、目的
截取某一个文件夹的全部视频,生成对应视频的对应图片文件夹。
二、实现
1、截图实现
videoCapture = cv2.VideoCapture(videopath) if videoCapture.isOpened(): rval, frame = videoCapture.read() else: rval = False print("false") while rval: rval, frame = videoCapture.read() i += 1 if (i%timeF==0): j += 1 pass
2、保存数据
def saveImage(frame, SaveAddress, num): try: address = SaveAddress + "/" + str(num) + '.jpg' cv2.imencode('.jpg', frame)[1].tofile(address) print(num) except Exception: print(address)
3、遍历截图
import cv2
import os
i = 0
j = 0
filepath = '视频文件夹'
pathDir = os.listdir(filepath)
save_filename = '保存截图文件夹'
timeF = 6 #截图时间间隔
class Nstr:
def __init__(self, arg):
self.x=arg
def __sub__(self,other):
c=self.x.replace(other.x,"")
return c
def saveImage(frame, SaveAddress, num):
try:
address = SaveAddress + "/" + str(num) + '.jpg'
cv2.imencode('.jpg', frame)[1].tofile(address)
print(num)
except Exception:
print(address)
for allDir in pathDir:
videopath = filepath + '/' + allDir
name = videopath.split("/")[1]
if name[-4:] == ".mp4":
new_name = Nstr(name) - Nstr(name[-4:])
save_file = os.path.join(save_filename, new_name)
if not os.path.exists(save_file):
os.mkdir(save_file)
videoCapture = cv2.VideoCapture(videopath)
if videoCapture.isOpened(): # 判断是否正常打开
rval, frame = videoCapture.read()
else:
rval = False
print("false")
while rval:
rval, frame = videoCapture.read()
i += 1
if (i%timeF==0):
j += 1
saveImage(frame, save_file, j)
pass