首页 > 编程 > Python > 正文

python视频按帧截取图片工具

2019-11-25 12:15:20
字体:
来源:转载
供稿:网友

本文实例为大家分享了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 cv2import argparseimport osdef 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)

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表