1. 下载FFmpeg,解压后将bin目录添加到环境变量 https://www.ffmpeg.org/,也可以使用opencv
  2. 修改crop_time 后面的时间和videoPathimagePath 即可
    **注意:**images后面需要有 两个\\
import osdef getImage(videoPath, imagePath):img_count = 1crop_time = 0.0#转化多少秒的视频while crop_time <= 40.0:os.system('ffmpeg -i %s -f image2 -ss %s -vframes 1 %s.png' % (videoPath, str(crop_time), imagePath + str(img_count)))img_count += 1print('Geting Image ' + str(img_count) + '.png' + ' from time ' + str(crop_time))#每多少秒截取一张照片crop_time += 0.25print('Image Collected')if __name__ == '__main__':videoPath = r'D:\ARDemo\2019_06_25_12_31_16_645.mp4'#注意:images后面需要有 两个\\imagePath = r'D:\ARDemo\images\\'getImage(videoPath, imagePath)

由于需求变更,需要对路口进行扩展补充,数据是间断的且分布在不同包
可以根据图片的名字批量提取对应的图片并保存到另一个文件夹
【间断数据图】

  1. 整体提取图片
    先把分布在各个文件夹内所有图片提取到一个文件夹下

    # -*- coding: utf-8 -*-
    import time
    import os
    import shutildef get_file(root_path,suffix): try:for dir_name in os.listdir(root_path):exts = suffix.split(' ')#获取目录或文件的路径file_path = os.path.join(root_path,dir_name)#判断路径为文件还是路径if os.path.isdir(file_path):#递归获取所有文件和目录的路径                               get_file(file_path,suffix)      else:for ext in exts:#根据后缀名判断文件类别if(dir_name.endswith(ext)):file_exits_path = to_path + '\\' + dir_name#如果文件夹在移动的目录下,跳过它if not os.path.exists(file_exits_path):shutil.copy(file_path,to_path)except FileNotFoundError:print('地址输入错误,请检查地址'.center(20,'-'))time.sleep(1.2)if __name__ == "__main__":root_path = input('请输入 图片 所在地址:')to_path  = input('请输入 图片 要存放的地址:')suffix = '.png .jpg .psd .afphoto'get_file(root_path,suffix)
  2. 再把需要提取的文件写入到getImage.txt 文件中,根据名称提取文件。
    也可以使用 图像处理库PIL 中的Image.open -> save 方法,不过提取较慢
    当然也可以 根据名称提取指定文件夹,把 shutil.copy -> shutil.move (相当于剪切) 即可

    # -*- coding: UTF-8 -*-
    import shutilroot_path = input('请输入 图片 所在地址:')
    to_path  = input('请输入 图片 要存放的地址:')
    data = []for line in open(r"C:\Users\Desktop\getImage.txt", "r"):  # 设置文件对象并读取每一行文件data.append(line)for a in data:file_path = root_path + '/{}'.format(a[:-1])shutil.copy(file_path, to_path)
    
  3. 整体提取文件夹(补充)
    由于文件夹层级结构可能些许复杂:一个一级目录下可能有很多二级目录,一个二级目录下可能有很多文件,把这些文件夹提取出来放到一个目录下以便处理

    # _*_coding:utf-8
    import os
    import shutil
    import timedef get_file(root_path,suffix):  try:for dir_name in os.listdir(root_path):exts = suffix.split(' ')#获取目录或文件的路径file_path = os.path.join(root_path,dir_name)#判断路径为文件还是路径if os.path.isdir(file_path):#递归获取所有文件和目录的路径get_file(file_path,suffix)  else:for ext in exts:#根据后缀名判断文件类别if(dir_name.endswith(ext)):fileName_listdir = '\\'.join(file_path.split('\\')[:-1])if fileName_listdir not in data_address:data_address.append(fileName_listdir)except FileNotFoundError:print('地址输入错误,请检查地址'.center(20,'-'))time.sleep(1.2)def main():get_file(root_path,suffix)# datas = list(set(data_address))for data in data_address:data_split = to_path + '\\' + data.split('\\')[-1]#如果文件夹存在移动的目录下,跳过它if not os.path.exists(data_split):shutil.move(data,to_path)print('文件夹拷贝完成'.center(20,'-'))time.sleep(1.2)if __name__ == "__main__":root_path = input('请输入 文件夹 所在地址:')to_path = input('请输入 文件夹 移动到的地址:')suffix = '.jpg'data_address = []main()

从视频中提取帧图片FFmpeg / 根据文件名提取图片相关推荐

  1. python视频抽帧 后 前端javascript如何显示_python通过ffmgep从视频中抽帧的方法

    如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00 ...

  2. python 视频抽帧_python通过ffmgep从视频中抽帧的方法

    如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00 ...

  3. 音乐背景声提取 matlab,喜欢视频中的背景音乐,教你怎么提取里面的音频

    原标题:喜欢视频中的背景音乐,教你怎么提取里面的音频 昨天小编在抖音上看到了一段视频,觉得里面的背景音乐非常的好听,一下子就击中小编了.但是翻看视频的详细信息发现并没有任何关于背景音乐介绍的信息.不过 ...

  4. 使用opencv从mp4视频中抽帧并保存

    使用oepncv有两种方法,一种是使用cvGrabFrame()+cvRetrieveFrame(),另一种是使用使用cvQueryFrame(). http://blog.csdn.net/augu ...

  5. python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框

    最近因为要实现模板匹配,需要在视频中选中一个目标,然后框出(即作为模板),对其利用模板匹配的方法进行检测.于是需要首先选出视频中的一帧,但是在利用摄像头读视频的过程中我唯一能想到的方法就是: 1.在视 ...

  6. opencv画框显示python_python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框...

    最近因为要实现模板匹配,需要在视频中选中一个目标,然后框出(即作为模板),对其利用模板匹配的方法进行检测.于是需要首先选出视频中的一帧,但是在利用摄像头读视频的过程中我唯一能想到的方法就是: 1.在视 ...

  7. 视频中IBP帧的介绍和判定方法

    mpeg4视频中,I帧.p帧.B帧的判定 mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案.注意:是2bit,不是byt ...

  8. python做视频抽帧图_利用Python和ffmpeg从视频中抽帧,此方法比opencv抽帧法快。

    原博文 2020-03-26 09:34 − import subprocess import os import subprocess import shutil #目录文件不存在则自动创建,存在则 ...

  9. python实现截取视频中特定帧进行保存功能

    # -*- encoding: utf-8 -*- # @File : screenshot.py # @Author: Mr. Luo # @Date: 2021/11/3 14:30 ''' 读取 ...

最新文章

  1. everything文件搜索_本地文件搜索神器,Everything、Listary、AnyTXT Searcher!
  2. CentOS系统bash: groupadd: command not found问题
  3. zynqpl端时钟_第十二章 ZYNQ-MIZ702 PS读写PL端BRAM
  4. Codeforces Round #491 (Div. 2) E - Bus Number + 反思
  5. sicktim571操作手册_SICK激光传感器TIM310操作说明书
  6. 实用的java代码生成器,开箱即用(基于mybatisplus的AutoGenerator)
  7. RuoYi-Cloud 部署篇_01(linux环境 mysql+nginx版本)
  8. docker 命令使用笔记
  9. UIDatePicker的属性与方法
  10. 20191007每日一句
  11. Tableau数据可视化案例
  12. 手把手教你搭建基于 MarkDown 的 Wiki 系统
  13. 第一次~通过MockingBird进行声音模仿的感悟
  14. iOS视频转码 mov 转 mp4
  15. wx_xcx_api.php,GitHub - biangbiang/wxpay-php: php项目基于微信支付JS SDK和JS API的接入开发...
  16. 2018-7-4 笔记
  17. Unity 5如何设置物体透明
  18. oracle ebs fsg报表,Oracle EBS FSG报表迁移
  19. CPU内存乱序访问与内存屏障
  20. mysql 触发器 模板_MySQL 触发器例子(两张表同步增加和删除)

热门文章

  1. CoAP协议之初探(一)
  2. clipboard剪切板
  3. Dreamweaver CS6下载及安装步骤
  4. 产品经理如何推动项目落地
  5. 1Password 7.3.2 强大的密码管理器
  6. 001,Python微信接龙脚本与腾讯会议定时挂网课脚本
  7. 【线上讲座】如果转型为AI人工智能?
  8. 多语言适配分享会演讲稿
  9. 微型真空气体采样泵气路的流导计算
  10. AI的艺术创造力超越人类?绝不是痴人说梦