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处理文本文件并生成指定格式的文件
Jul 31 Python
探究数组排序提升Python程序的循环的运行效率的原因
Apr 01 Python
浅析Python装饰器以及装饰器模式
May 28 Python
python多进程实现文件下载传输功能
Jul 28 Python
解决python中 f.write写入中文出错的问题
Oct 31 Python
3分钟学会一个Python小技巧
Nov 23 Python
用Python编写一个高效的端口扫描器的方法
Dec 20 Python
基于python实现学生信息管理系统
Nov 22 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
Python如何实现线程间通信
Jul 30 Python
Python logging自定义字段输出及打印颜色
Nov 30 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
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
详谈PHP编码转换问题
2015/07/28 PHP
详解php的socket通信
2015/08/11 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
django加载本地html的方法
2018/05/27 Python
python中字符串的操作方法大全
2018/06/03 Python
matplotlib实现区域颜色填充
2019/03/18 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
python raise的基本使用
2020/09/10 Python
Django多数据库联用实现方法解析
2020/11/12 Python
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
测绘工程专业个人自我评价
2013/12/01 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
人事部经理岗位职责
2014/03/07 职场文书
房屋租赁协议书
2014/04/10 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
2014年库房工作总结
2014/11/26 职场文书
小学校本教研总结
2015/08/13 职场文书
初二英语教学反思
2016/02/15 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python