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 struct模块解析
Jun 12 Python
Python文件夹与文件的相关操作(推荐)
Jul 25 Python
Python实现进程同步和通信的方法
Jan 02 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
Jun 23 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
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
Javascript面向对象之四 继承
2011/02/08 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Python中字典的基本知识初步介绍
2015/05/21 Python
Python函数式编程
2017/07/20 Python
python中logging库的使用总结
2017/10/18 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
通过实例解析python and和or使用方法
2020/11/14 Python
python excel多行合并的方法
2020/12/09 Python
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
为什么使用接口?
2014/08/13 面试题
篝火晚会主持词
2014/03/25 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
质量承诺书格式
2014/05/20 职场文书
三行辞职书范文
2015/02/26 职场文书
爱心捐书倡议书
2015/04/27 职场文书
2016年端午节寄语
2015/12/04 职场文书
2016教师节感恩话语
2015/12/09 职场文书