video # 文件夹,存放着视频集
frame # 文件夹,保存逐帧提取出来的图片
src # 文件夹
video_to_frame.py # 源程序
import os
import cv2
video_src_path = '../video/'
frame_des_path = '../frame/'
def video2frame(video_src_path, frame_des_path, interval=1):
videos = os.listdir(video_src_path)
for video in videos:
video_name = video[:-4] # video format including mov/mkv
os.mkdir(frame_des_path+video_name)
frame_save_path = frame_des_path+video_name+'/'
video_cur_path = os.path.join(video_src_path, video)
capture = cv2.VideoCapture(video_cur_path)
success = False
count = 0
if capture.isOpened():
success, frame = capture.read()
print("Start decoding file %s..." % video)
count += 1
else:
print("Open %s failure!" % video)
while success:
if count % interval == 0:
print("Writing the number %d of frame to src file" % (count//interval))
cv2.imwrite(frame_save_path+'%d.jpg' % (count//interval), frame)
success, frame = capture.read()
count += 1
capture.release()
print("Encoding file %s success!" % video)
if __name__ == '__main__':
video2frame(video_src_path, frame_des_path, interval=3)
(最近更新:2020年01月08日)