視頻按照時間間隔抽幀方法

import cv2
import os

videopath =r"1-1-2-1_fa_diantou+idle+idle_audio.mp4"
pic_path = r'F:\2023_02_24\liu_hui\video_cv2\pic'



def start_deal():
    vc = cv2.VideoCapture(videopath)  # 讀入視頻文件
    if vc.isOpened():  # 判斷是否正常打開
        rval, frame = vc.read()
    else:
        rval = False
    fps = vc.get(cv2.CAP_PROP_FPS)                    # 每秒幀數
    image_timer = 1
    timeF = int(fps * image_timer)
    c = 0
    cut_time = 0
    while rval:                                    # 循環讀取視頻幀
            rval, frame = vc.read()
            if (c % timeF == 0 and rval):              # 每隔timeF幀進行存儲操作
                img2gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
                imageVar = cv2.Laplacian(img2gray, cv2.CV_64F).var()
                if imageVar > 10:
                    image_full_path = os.path.join(pic_path,str(cut_time)+'.jpg')
                    cv2.imwrite(image_full_path, frame)                       # 存儲爲圖像
                cut_time += image_timer                                      # 這裏記錄疊加時間
            c = c + 1
            cv2.waitKey(1)
    vc.release()


if __name__ == '__main__':
    start_deal()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章