使用Python+OpenCV对视频抽帧保存为JPG图像
import os
import cv2
import time
#视频文件夹路径,可修改
videoPath = 'D:\\video\\'
#保存的图片文件夹路径,可修改
savePath = 'D:\\images\\'
videolist = os.listdir(videoPath)
if not os.path.exists(savePath):
os.mkdir(savePath)
video_num = 0
for video in videolist:
if(video.endswith(".avi")):
c = 1
videofile = videoPath + video
vc = cv2.VideoCapture(videofile) #读入视频文件
if vc.isOpened(): #判断是否正常打开
video_num = video_num + 1
rval , frame = vc.read()
#print("正常打开:",video)
if(video_num%100 == 0):
print(video_num)
else:
rval = False
print("打开失败:",video)
continue
timeF = 25 #视频帧计数间隔频率,可修改
try:
while rval: #循环读取视频帧
rval, frame = vc.read()
if(c%timeF == 0): #每隔timeF帧进行存储操作
cv2.imwrite(savePath + video[:-4] + '_' + str(time.time_ns()) + '.jpg',frame) #存储为图像
c = c + 1
cv2.waitKey(1)
except:
#print("error")
continue
vc.release()
以上代码可以修改timeF变量控制抽帧间隔频率。