福州晋安区建设局网站,创业平台的选择,网站建设企业关键词,策划案例网站1、描述
将一个视频流按帧数截取大量的图片
2、用途
AI的数据集制作#xff0c;得到大量的图片#xff0c;之后将其打标签
3、案例文件截图 4、代码实现#xff1a;
import cv2
import argparse
import os# 边里该文件夹下的文件名称
def read_directory(directory_nam…1、描述
将一个视频流按帧数截取大量的图片
2、用途
AI的数据集制作得到大量的图片之后将其打标签
3、案例文件截图 4、代码实现
import cv2
import argparse
import os# 边里该文件夹下的文件名称
def read_directory(directory_name):file_list []for filename in os.listdir(directory_name):str directory_name/filenamefile_list.append(str)return file_list# 设置处理的帧数与文件位置并整合。
def parse_args(input,output):parser argparse.ArgumentParser(descriptionProcess pic)parser.add_argument(--input, helpvideo to process, destinput, defaultNone, typestr)parser.add_argument(--output, helppic to store, destoutput, defaultNone, typestr)# default为间隔多少帧截取一张图片parser.add_argument(--skip_frame, destskip_frame, helpskip number of video, default50, typeint)# input为输入视频的路径 output为输出存放图片的路径args parser.parse_args([--input, input, --output, output])return args# 处理帧数函数
def process_video(i,i_video, o_video, num):cap cv2.VideoCapture(i_video)num_frame cap.get(cv2.CAP_PROP_FRAME_COUNT)print(该视频的总帧数为,num_frame)expand_name .jpgif not cap.isOpened():print(检查路径名)cnt 0count 0while 1:ret, frame cap.read()cnt 1if cnt % num 0:count 1cv2.imwrite(os.path.join(o_video, str(i)str(count) expand_name), frame)if not ret:breakif __name__ __main__:# 命名不要带中文可能报错intput read_directory(./video_01)output ./video_imgprint(该目录下共有,len(intput),个视频)i 1for input_i in intput:args parse_args(input_i,output)print(开始输出第,i,个视频)process_video(i,args.input, args.output, args.skip_frame)print(第, i, 个视频处理完毕)print(-----------------------------------)i i 1print(汇总,len(intput),个视频处理完毕)