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 相关文章推荐
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
Django接收自定义http header过程详解
Aug 23 Python
Python性能分析工具Profile使用实例
Nov 19 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
Python3将ipa包中的文件按大小排序
Apr 17 Python
基于python实现复制文件并重命名
Sep 16 Python
如何从csv文件构建Tensorflow的数据集
Sep 21 Python
Python  lambda匿名函数和三元运算符
Apr 19 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 文章采集正则代码
2009/12/28 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
Javascript Math对象
2009/08/13 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
Python实现大文件排序的方法
2015/07/10 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
在Python中定义一个常量的方法
2018/11/10 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
Python any()函数的使用方法
2019/10/28 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
python类共享变量操作
2020/09/03 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
升职自荐信范文
2013/10/05 职场文书
成教毕业生自我鉴定
2013/10/23 职场文书
军训自我鉴定
2014/01/22 职场文书
愚人节活动策划方案
2014/03/11 职场文书
教学副校长工作总结
2015/08/13 职场文书
导游词之介休绵山
2019/12/31 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS