xiaoaapeng 2021-05-19 22:39 采纳率: 50%
浏览 96
已结题

关于cv2.imwrite截图的问题

我的理解是这个按照每30帧截取一张图像,可是截取出来的确实每隔1帧截取的。求解答

  • 写回答

3条回答 默认 最新

  • CSDN专家-黄老师 2021-05-19 22:46
    关注

    代码错了,参考一下下面代码:

    # coding=utf-8
    
    # 全局变量
    VIDEO_PATH = './1.avi' # 视频地址
    EXTRACT_FOLDER = './extract_folder' # 存放帧图片的位置
    EXTRACT_FREQUENCY = 100 # 帧提取频率
    
    
    def extract_frames(video_path, dst_folder, index):
        # 主操作
        import cv2
        video = cv2.VideoCapture()
        if not video.open(video_path):
            print("can not open the video")
            exit(1)
        count = 1
        while True:
            _, frame = video.read()
            if frame is None:
                break
            if count % EXTRACT_FREQUENCY == 0:
                save_path = "{}/{:>03d}.jpg".format(dst_folder, index)
                cv2.imwrite(save_path, frame)
                index += 1
            count += 1
        video.release()
        # 打印出所提取帧的总数
        print("Totally save {:d} pics".format(index-1))
    
    
    def main():
        # 递归删除之前存放帧图片的文件夹,并新建一个
        import shutil
        try:
            shutil.rmtree(EXTRACT_FOLDER)
        except OSError:
            pass
        import os
        os.mkdir(EXTRACT_FOLDER)
        # 抽取帧图片,并保存到指定路径
        extract_frames(VIDEO_PATH, EXTRACT_FOLDER, 1)
    
    
    if __name__ == '__main__':
        main()
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月11日
  • 已采纳回答 5月3日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助