iT邦幫忙

0

截取Video畫面,存成一張張圖片Python cv2

找到一個有趣的程式碼,改了一下,可截取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        


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言