python视频按帧截取图片工具
作者:剑峰随心 发布时间:2021-09-08 10:30:56
标签:python,视频,截取图片
本文实例为大家分享了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)
来源:https://www.cnblogs.com/bob-jianfeng/p/11140444.html
0
投稿
猜你喜欢
- 迭代器聊迭代器前我们要先清楚迭代的概念:通常来讲从一个对象中依次取出数据,这个过程叫做遍历,这个手段称为迭代(重复执行某一段代码块,并将每一
- 前言日志是对于软件执行所发生的事件的一种追踪记录方式。日常使用过程中对代码执行的错误和问题会进行查看日志来分析定位问题所在。平常编写代码以及
- 1 模型定义和TF很像,Pytorch也通过继承父类来搭建模型,同样也是实现两个方法。在TF中是__init__()和
- 介绍这个例子主要利用turtle库实现根据输入动态展示不同机器人的图像和属性信息。代码部分非原创只是做了些许修改和整理使得更易阅读。图片和文
- 事件的概念事件:指的是文档或者浏览器窗口中发生的一些特定交互瞬间。我们可以通过 * (或者处理程序)来预定事件,以便事件发生的时候执行相应的
- CAS 全称集中式认证服务(Central Authentication Service),是实现单点登录(SSO)的一中手段。CAS 的通
- 在django操作数据库的时候如何找出内容不为空的数据呢?from django.db.models import Qclass Index
- 前言:接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱。接口自动化包含2个部分,功能性的接口自
- 对于英文不行我来说使用英文版PyCharm实在是太难受了,网上好多汉化补丁都是网友提供了,下面为大家介绍一种PyCharm官方中文语言包汉化
- 一、安装PythonPython比较稳定的两个版本是Python 3.5和Python 2.7,我用的是Python 2.7,下载地址是:h
- 1.元字符: . 它匹配除了换行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至可以匹配换行 ^ 匹配行首。除非
- Django(python)简单实现android的服务器端1. 所需工具PyCharm--python编辑工具,这里要写Django,因此
- 初学python,小缘缘出了几道题: 有一 list a = [1, 2, 3, 4, 5, 6] 请将 a 依 0, 1 1, 2 2,
- 本文介绍了网页中插入视频播放的代码全集:有avi格式的视频,mpg格式,smi格式,rm格式,wmv格式,wma格式,Windows Med
- 1、Python的内置高阶函数1.1 map()map()会根据提供的函数对指定序列做映射语法格式:map(function, iterab
- 目前是把图片存在mongodb数据库,实现一个方法,比如 访问 /get_pic/ID 能实现图片在浏览器打开,添加了一个状态,比如?fil
- 做服务器端开发的同学应该都对进程监控不会陌生,最近恰好要更换 uwsgi 为 gunicorn,而gunicorn又恰好有这么一章讲进程监控
- 大家好,今天才发现很多学习Flask的小伙伴都有这么一个问题,清理缓存好麻烦啊,今天就教大家怎么解决。大家在使用Flask静态文件的时候,每
- 本文实例为大家分享了OpenCV实现直线检测的具体代码,供大家参考,具体内容如下1 介绍本文主要介绍OpenCV自带的直线检测函数Hough
- 主键的生成方式主要有三种: 一. 数据库自动生成 二. GUID 三. 开发创建 严格讲这三种产生方式有一定的交叉点,其定位方式将在下面进行