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正则表达式完全指南
May 25 Python
python实现雨滴下落到地面效果
Jun 21 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
python爬虫之快速对js内容进行破解
Jul 09 Python
Django获取应用下的所有models的例子
Aug 30 Python
Python统计分析模块statistics用法示例
Sep 06 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
python字符串拼接+和join的区别详解
Dec 03 Python
python爬虫如何解决图片验证码
Feb 14 Python
Python 如何解决稀疏矩阵运算
May 26 Python
Python面向对象之内置函数相关知识总结
Jun 24 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
解析左右值无限分类的实现算法
2013/06/20 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
vuex的使用步骤
2021/01/06 Vue.js
Python的Django框架下管理站点的基本方法
2015/07/17 Python
python实现二叉树的遍历
2017/12/11 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
Python 函数返回值的示例代码
2019/03/11 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
关键字final的用法
2013/10/02 面试题
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
建筑施工安全生产责任书
2014/07/22 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python