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

在这里插入图片描述

这段代码起因是这样的,我以为同学目前的研究方向是机械自动化方向,涉及一些编程知识,最近他导师想考考他的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库自动生成文件夹这个功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Captain_Data

打赏一下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值