从视频中提取帧图片FFmpeg / 根据文件名提取图片
- 下载FFmpeg,解压后将bin目录添加到环境变量 https://www.ffmpeg.org/,也可以使用opencv
- 修改
crop_time
后面的时间和videoPath
、imagePath
即可
**注意:**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)
由于需求变更,需要对路口进行扩展补充,数据是间断的且分布在不同包
可以根据图片的名字批量提取对应的图片并保存到另一个文件夹
【间断数据图】
整体提取图片
先把分布在各个文件夹内所有图片提取到一个文件夹下# -*- 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)
再把需要提取的文件写入到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)
整体提取文件夹(补充)
由于文件夹层级结构可能些许复杂:一个一级目录下可能有很多二级目录,一个二级目录下可能有很多文件,把这些文件夹提取出来放到一个目录下以便处理# _*_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 / 根据文件名提取图片相关推荐
- python视频抽帧 后 前端javascript如何显示_python通过ffmgep从视频中抽帧的方法
如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00 ...
- python 视频抽帧_python通过ffmgep从视频中抽帧的方法
如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00 ...
- 音乐背景声提取 matlab,喜欢视频中的背景音乐,教你怎么提取里面的音频
原标题:喜欢视频中的背景音乐,教你怎么提取里面的音频 昨天小编在抖音上看到了一段视频,觉得里面的背景音乐非常的好听,一下子就击中小编了.但是翻看视频的详细信息发现并没有任何关于背景音乐介绍的信息.不过 ...
- 使用opencv从mp4视频中抽帧并保存
使用oepncv有两种方法,一种是使用cvGrabFrame()+cvRetrieveFrame(),另一种是使用使用cvQueryFrame(). http://blog.csdn.net/augu ...
- python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框
最近因为要实现模板匹配,需要在视频中选中一个目标,然后框出(即作为模板),对其利用模板匹配的方法进行检测.于是需要首先选出视频中的一帧,但是在利用摄像头读视频的过程中我唯一能想到的方法就是: 1.在视 ...
- opencv画框显示python_python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框...
最近因为要实现模板匹配,需要在视频中选中一个目标,然后框出(即作为模板),对其利用模板匹配的方法进行检测.于是需要首先选出视频中的一帧,但是在利用摄像头读视频的过程中我唯一能想到的方法就是: 1.在视 ...
- 视频中IBP帧的介绍和判定方法
mpeg4视频中,I帧.p帧.B帧的判定 mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案.注意:是2bit,不是byt ...
- python做视频抽帧图_利用Python和ffmpeg从视频中抽帧,此方法比opencv抽帧法快。
原博文 2020-03-26 09:34 − import subprocess import os import subprocess import shutil #目录文件不存在则自动创建,存在则 ...
- python实现截取视频中特定帧进行保存功能
# -*- encoding: utf-8 -*- # @File : screenshot.py # @Author: Mr. Luo # @Date: 2021/11/3 14:30 ''' 读取 ...
最新文章
- everything文件搜索_本地文件搜索神器,Everything、Listary、AnyTXT Searcher!
- CentOS系统bash: groupadd: command not found问题
- zynqpl端时钟_第十二章 ZYNQ-MIZ702 PS读写PL端BRAM
- Codeforces Round #491 (Div. 2) E - Bus Number + 反思
- sicktim571操作手册_SICK激光传感器TIM310操作说明书
- 实用的java代码生成器,开箱即用(基于mybatisplus的AutoGenerator)
- RuoYi-Cloud 部署篇_01(linux环境 mysql+nginx版本)
- docker 命令使用笔记
- UIDatePicker的属性与方法
- 20191007每日一句
- Tableau数据可视化案例
- 手把手教你搭建基于 MarkDown 的 Wiki 系统
- 第一次~通过MockingBird进行声音模仿的感悟
- iOS视频转码 mov 转 mp4
- wx_xcx_api.php,GitHub - biangbiang/wxpay-php: php项目基于微信支付JS SDK和JS API的接入开发...
- 2018-7-4 笔记
- Unity 5如何设置物体透明
- oracle ebs fsg报表,Oracle EBS FSG报表迁移
- CPU内存乱序访问与内存屏障
- mysql 触发器 模板_MySQL 触发器例子(两张表同步增加和删除)