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基于pygame实现的弹力球效果(附源码)
Nov 11 Python
python 回调函数和回调方法的实现分析
Mar 23 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
Sep 17 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
python3.6实现学生信息管理系统
Feb 21 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
使用python接入微信聊天机器人
Mar 31 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
基于Tensorflow批量数据的输入实现方式
Feb 05 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 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
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
20个最新的jQuery插件
2012/01/13 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
Django数据库操作的实例(增删改查)
2017/09/04 Python
TensorFlow如何实现反向传播
2018/02/06 Python
python如何统计序列中元素
2020/07/31 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
python实现中文文本分句的例子
2019/07/15 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
在校大学生的职业生涯规划书
2014/03/14 职场文书
经典演讲稿开场白
2014/08/25 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
工人先进事迹材料
2014/12/26 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android