视频按照时间间隔抽帧方法

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()

 

posted @ 2023-03-17 17:06  lvye001  阅读(289)  评论(0)    收藏  举报