NO.23如何将视频切成图片?? openCV 可以实现

NO.23如何将视频切成图片?? openCV 可以实现_第1张图片

这段代码起因是这样的,我以为同学目前的研究方向是机械自动化方向,涉及一些编程知识,最近他导师想考考他的Python编程能力,让他用Python将一个视频切为一帧一张图片,于是让我帮他写了这段代码,并且最后开腾讯会议给他讲解了代码含义,讲完后他对Python产生了浓厚兴趣,随即让我为他推荐几本关于编程的书,本来我是有一本入门书的,可以送他,上次在北京搬家弄丢了。。。。
于是给了他书名推荐他去网上买了。
代码如下:

import cv2  # 导入opencv模块
import os #路径与文件 库
import time #计算时间

# video_path:视频路径
#save_path:保存切分后帧的路径
def video_split(video_path, save_path):
    vc = cv2.VideoCapture(video_path)
    # 一帧一帧的分割 需要几帧写几
    c = 0
    if vc.isOpened():
        rval, frame = vc.read()
    else:
        rval = False
    while rval:
        rval, frame = vc.read()
        # 每秒提取5帧图片
        if c % 5 == 0:#模
            cv2.imwrite(save_path + "/" + str('%06d' % c) + '.jpg', frame)
            cv2.waitKey(1)
        c = c + 1


if __name__ == '__main__':
    video_DIR = "vedio_mp4"  # 视频数据主目录
    SAVE_DIR = "dc_pic"  # 帧文件保存目录
    start_time =time.time()   #时间戳
    print(list(os.walk(video_DIR)))
    for parents, dirs, filenames in os.walk(video_DIR):  #parents 路径  #dirs 子文件夹  #filenames 文件名 *.*
        print("正在处理文件夹", parents)
        save_path = SAVE_DIR
        # 对每视频数据进行遍历
        for file in filenames:
            file_name = file.split(".")[0]
            save_path_ = save_path + "/" + file_name
            if not os.path.isdir(save_path_):
                os.makedirs(save_path_)
            video_path = parents + "/" + file
            video_split(video_path, save_path_)
    #
    end_time = time.time()
    print("Cost time", start_time - end_time)

当然,这份代码是在前人基础上修改的,我加了个os库自动生成文件夹这个功能。

你可能感兴趣的:(sql,python,项目技能篇)