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

复制代码
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 @   lvye001  阅读(222)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示