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(一)Python环境安装
Aug 20 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
python中defaultdict的用法详解
Jun 07 Python
利用python批量修改word文件名的方法示例
Oct 17 Python
Python2中文处理纪要的实现方法
Mar 10 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
Python button选取本地图片并显示的实例
Jun 13 Python
django 消息框架 message使用详解
Jul 22 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 Python
appium+python adb常用命令分享
Mar 06 Python
基于Python爬虫采集天气网实时信息
Jun 05 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
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
PHP 读取文件的正确方法
2009/04/29 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
php查询whois信息的方法
2015/06/08 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
浅析JavaScript动画
2015/06/10 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
js编写简易的计算器
2020/07/29 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python文件写入write()的操作
2019/05/14 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书