使用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 = 1videofile = videoPath + videovc = cv2.VideoCapture(videofile) #讀入視頻文件if vc.isOpened(): #判斷是否正常打開video_num = video_num + 1rval , frame = vc.read()#print("正常打開:",video)if(video_num%100 == 0):print(video_num)else:rval = Falseprint("打開失敗:",video)continuetimeF = 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 + 1cv2.waitKey(1)except:#print("error")continuevc.release()
以上代碼可以修改timeF變量控制抽幀間隔頻率。