找到一個有趣的程式碼,改了一下,可截取Video畫面,存成一張張圖片。
進行中想要中斷執行,可按 ESC 中斷。
''' VideoToFrames.py
截取Video畫面
'''
import cv2, keyboard, os, ctypes
# 要播的影片請自設
vidcap = cv2.VideoCapture('YourVideo.mp4')
#------------------
def getFrame(sec):
vidcap.set(cv2.CAP_PROP_POS_MSEC,sec*1000)
hasFrames,image = vidcap.read()
if hasFrames:
cv2.imwrite("media\\scrn"+str(count)+".jpg", image)
return hasFrames
#--- 主流程 --------
prompt = '即將開始Video畫面截取,如進行中愈中斷,可按Esc...'
ctypes.windll.user32.MessageBoxW(0,prompt, 'Video To Frames', 1)
if not os.path.isdir('media'):
os.mkdir('media')
#--- 每隔0.5秒截取一次畫面-----
sec = 0
frameRate = 0.5
count = 1
success = getFrame(sec)
#--- 執行迴圈,可按Esc中斷
while success:
try:
count += 1
sec = sec + frameRate
sec = round(sec, 2)
print(f'sec: {sec}')
success = getFrame(sec)
if keyboard.is_pressed('Esc'):
print('quit')
success = False
break
except:
pass