python视频按帧截取图片工具


Posted in Python onJuly 23, 2019

本文实例为大家分享了python视频按帧截取图片工具的具体代码,供大家参考,具体内容如下

描述:将一个视频流按帧数截取大量的图片

用途:AI的数据集制作,得到大量的图片,之后将其打标签

更改的地方

1.default--间隔的帧数   2.input/output--输入视频的路径、存放截取图片的路径 (将路径放入后面的‘ '中即可)前面加r可表示绝对路径 eg:

args = parser.parse_args(['--input',r'F:\data_video\IMG_4395.MOV','--output',r'F:data_rgb_pic\7video'])

直接上代码

import cv2
import argparse
import os
def parse_args():
 """
 Parse input arguments
 """
 parser = argparse.ArgumentParser(description='Process pic')
 parser.add_argument('--input', help='video to process', dest='input', default=None, type=str)
 parser.add_argument('--output', help='pic to store', dest='output', default=None, type=str)
 #default为间隔多少帧截取一张图片
 parser.add_argument('--skip_frame', dest='skip_frame', help='skip number of video', default=100, type=int)
 #input为输入视频的路径 ,output为输出存放图片的路径
 args = parser.parse_args(['--input','','--output',''])
 return args
 
def process_video(i_video, o_video, num):
 cap = cv2.VideoCapture(i_video)
 num_frame = cap.get(cv2.CAP_PROP_FRAME_COUNT)
 expand_name = '.jpg'
 if not cap.isOpened():
  print("Please check the path.")
 cnt = 0
 count = 0
 while 1:
  ret, frame = cap.read()
  cnt += 1
  # how
  # many
  # frame
  # to
  # cut
  if cnt % num == 0:
   count += 1
   cv2.imwrite(os.path.join(o_video, str(count) + expand_name), frame)
 
  if not ret:
   break
 
if __name__ == '__main__':
 args = parse_args()
 if not os.path.exists(args.output):
  os.makedirs(args.output)
 print('Called with args:')
 print(args)
 process_video(args.input, args.output, args.skip_frame)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取远程图片大小和尺寸的方法
Mar 26 Python
Python实现遍历数据库并获取key的值
May 17 Python
六个窍门助你提高Python运行效率
Jun 09 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
python 多线程实现检测服务器在线情况
Nov 25 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
python读取csv和txt数据转换成向量的实例
Feb 12 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
利用Python的sympy包求解一元三次方程示例
Nov 22 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
Python使用GitPython操作Git版本库的方法
Feb 29 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
python如何实现从视频中提取每秒图片
Oct 22 #Python
详解Django 时间与时区设置问题
Jul 23 #Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 #Python
python 抓包保存为pcap文件并解析的实例
Jul 23 #Python
Django ModelForm组件使用方法详解
Jul 23 #Python
Pandas之groupby( )用法笔记小结
Jul 23 #Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 #Python
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
newxtree.js代码
2007/03/13 Javascript
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
canvas实现钟表效果
2017/02/13 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Python简单获取自身外网IP的方法
2016/09/18 Python
python 生成器协程运算实例
2017/09/04 Python
python实现k-means聚类算法
2018/02/23 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
包装类的功能、种类、常用方法
2012/01/27 面试题
创建卫生先进单位实施方案
2014/03/10 职场文书
交通事故协议书范文
2014/04/16 职场文书
设计专业自荐信
2014/06/19 职场文书
八一建军节主持词
2015/07/01 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书