Python工具:将文件夹下的视频按照帧数输出图片文件(含代码)

简介: Python工具:将文件夹下的视频按照帧数输出图片文件(含代码)

1、描述


一个视频流按帧数截取大量的图片


2、用途


AI的数据集制作,得到大量的图片,之后将其打标签


3、案例文件截图


abe267d549c5421fa5c4393913902bd3.png


4、代码实现:


import cv2
import argparse
import os
# 边里该文件夹下的文件名称
def read_directory(directory_name):
    file_list = []
    for filename in os.listdir(directory_name):
        str = directory_name+'/'+filename
        file_list.append(str)
    return file_list
# 设置处理的帧数与文件位置,并整合。
def parse_args(input,output):
    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=50, type=int)
    # 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 = '.jpg'
    if not cap.isOpened():
        print("检查路径名")
    cnt = 0
    count = 0
    while 1:
        ret, frame = cap.read()
        cnt += 1
        if cnt % num == 0:
            count += 1
            cv2.imwrite(os.path.join(o_video, str(i)+'+'+str(count) + expand_name), frame)
        if not ret:
            break
if __name__ == '__main__':
    # 命名不要带中文,可能报错
    intput = read_directory("./video_01")
    output = './video_img'
    print("该目录下共有:",len(intput),"个视频")
    i = 1
    for 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 + 1
    print("汇总",len(intput),"个视频处理完毕")
目录
相关文章
|
2月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
269 100
|
2月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
437 95
|
3月前
|
开发者 Python
Python神技:用列表推导式让你的代码更优雅
Python神技:用列表推导式让你的代码更优雅
481 99
|
2月前
|
缓存 Python
Python装饰器:为你的代码施展“魔法
Python装饰器:为你的代码施展“魔法
164 88
|
2月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
323 102

推荐镜像

更多