python视频按帧截取图片工具

 更新时间:2019年07月23日 14:13:00   作者:剑峰随心  
这篇文章主要为大家详细介绍了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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python collections模块实例讲解

    Python collections模块实例讲解

    Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块。比如今天想给大家 介绍的 collections 就是一个非常好的例子
    2014-04-04
  • Pygame鼠标进行图片的移动与缩放案例详解

    Pygame鼠标进行图片的移动与缩放案例详解

    pygame是Python的第三方库,里面提供了使用Python开发游戏的基础包。本文将介绍如何通过Pygame实现鼠标进行图片的移动与缩放,感兴趣的可以关注一下
    2021-12-12
  • python的numpy模块安装不成功简单解决方法总结

    python的numpy模块安装不成功简单解决方法总结

    这篇文章主要介绍了python的numpy模块安装不成功简单解决方法总结,分享了四种python模块导入不成功的解决方法,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 使用keras内置的模型进行图片预测实例

    使用keras内置的模型进行图片预测实例

    这篇文章主要介绍了使用keras内置的模型进行图片预测实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • PyCharm使用之配置SSH Interpreter的方法步骤

    PyCharm使用之配置SSH Interpreter的方法步骤

    这篇文章主要介绍了PyCharm使用之配置SSH Interpreter的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Python使用sys.path查看当前的模块搜索路径

    Python使用sys.path查看当前的模块搜索路径

    sys.path 是 Python 中的一个列表,它用于存储模块搜索路径,当你使用 import 语句导入一个模块时,Python 会按照 sys.path 列表中的路径顺序来查找这个模块,本文给大家介绍了Python使用sys.path查看当前的模块搜索路径,需要的朋友可以参考下
    2025-02-02
  • Python进阶Matplotlib库图绘制

    Python进阶Matplotlib库图绘制

    这篇文章主要介绍了Python进阶Matplotlib库图绘制,Matplotlib:是一个Python的2D绘图库,通过Matplotlib,开发者可以仅需要几行代码,便可以生成折线图,直方图,条形图,饼状图,散点图等
    2022-07-07
  • 使用Python编写基于DHT协议的BT资源爬虫

    使用Python编写基于DHT协议的BT资源爬虫

    这篇文章主要介绍了使用Python编写基于DHT协议的BT资源爬虫的方法,文中对于DHT协议的相关知识也作了补充说明,需要的朋友可以参考下
    2016-03-03
  • PyCharm之如何设置自动换行问题

    PyCharm之如何设置自动换行问题

    这篇文章主要介绍了PyCharm之如何设置自动换行问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • PyTorch使用Torchdyn实现连续时间神经网络的代码示例

    PyTorch使用Torchdyn实现连续时间神经网络的代码示例

    神经常微分方程(Neural ODEs)是深度学习领域的创新性模型架构,它将神经网络的离散变换扩展为连续时间动力系统,本文将基于Torchdyn(一个专门用于连续深度学习和平衡模型的PyTorch扩展库)介绍Neural ODE的实现与训练方法,需要的朋友可以参考下
    2025-02-02

最新评论