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 相关文章推荐
浅谈编码,解码,乱码的问题
Dec 30 Python
matplotlib绘制动画代码示例
Jan 02 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
python 高效去重复 支持GB级别大文件的示例代码
Nov 08 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
python实现邮件发送功能
Aug 10 Python
django执行数据库查询之后实现返回的结果集转json
Mar 31 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
如何真正的了解python装饰器
Aug 14 Python
一文读懂Python 枚举
Aug 25 Python
next在python中返回迭代器的实例方法
Dec 15 Python
Python趣味挑战之教你用pygame画进度条
May 31 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面向对象编程快速入门
2006/10/09 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
微信小程序服务器日期格式化问题
2020/01/07 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
python实现的AES双向对称加密解密与用法分析
2017/05/02 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
Python两个字典键同值相加的几种方法
2019/03/05 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
python 读取二进制 显示图片案例
2020/04/24 Python
pytorch实现查看当前学习率
2020/06/24 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
体育活动总结
2015/02/04 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
Redis 常见使用场景
2021/08/30 Redis