• python--oepncv-->>>>>>>>>>>>>>将视频剪辑成图片程序


    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=50, type=int)
    # input为输入视频的路径 ,output为输出存放图片的路径
    args = parser.parse_args(['--input', r'/home/firefly/duchao/video/车厢4-摄像头6-192.168.1.46-20190410080000.mp4', r'--output', '/home/firefly/duchao/video/images/'])
    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)

    #将批量视频转换成批量图片并将其各自保存至视频文件名的文件中:

    import cv2
    import argparse
    import os

    def listDir(rootDir, image_list, endwith1):
    files = os.listdir(rootDir)
    for filename in os.listdir(rootDir):
    pathname = os.path.join(rootDir, filename)
    if os.path.isfile(pathname):
    if pathname.split(".")[-1] in [endwith1]:
    image_list.append(pathname)
    else:
    listDir(pathname ,image_list,endwith1)


    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__':
    vidios_dir = "D:/BaiduNetdiskDownload/20201214/"
    save_dir = "D:/BaiduNetdiskDownload/20201214(images)/"

    vidio_list = []
    listDir(vidios_dir, vidio_list, "mkv")
    skip_frame = 60


    for video_path in vidio_list:
    save_root = os.path.join(os.path.dirname(save_dir), os.path.basename(video_path).split('.')[0])
    if not os.path.exists(save_root):
    os.makedirs(save_root)
    process_video(video_path, save_root, skip_frame)
    import cv2
    import argparse
    import os

    def listDir(rootDir, image_list, endwith1):
    files = os.listdir(rootDir)
    for filename in os.listdir(rootDir):
    pathname = os.path.join(rootDir, filename)
    if os.path.isfile(pathname):
    if pathname.split(".")[-1] in [endwith1]:
    image_list.append(pathname)
    else:
    listDir(pathname ,image_list,endwith1)


    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__':
    vidios_dir = "D:/BaiduNetdiskDownload/20201214/"
    save_dir = "D:/BaiduNetdiskDownload/20201214(images)/"

    vidio_list = []
    listDir(vidios_dir, vidio_list, "mkv")
    skip_frame = 60


    for video_path in vidio_list:
    save_root = os.path.join(os.path.dirname(save_dir), os.path.basename(video_path).split('.')[0])
    if not os.path.exists(save_root):
    os.makedirs(save_root)
    process_video(video_path, save_root, skip_frame)
  • 相关阅读:
    游标
    mobaxterm安装与使用(root_35/37/36/121)
    美团笔试--修改矩阵
    美团笔试1--螺旋矩阵
    assert函数
    2019年头条笔试--围坐分糖果
    邻值查找——stl函数lower_bound和upper_bound的使用
    动态规划练习1--腾讯暑期实习正式批
    Windows 7下硬盘安装CentOS6.4的解决方法
    Sublime Text 3 的一些基本使用方法和配置
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/14149956.html
Copyright © 2020-2023  润新知