Python实用代码工具2|视频转图片

视频转图片

代码只需:
① 设置每 x 帧截取一个图片 (可不修改) 1帧 =1/12秒
② 修改公共部分的文件名

import cv2
import os


def transfer(video, save):  # 定义转换过程
    cap = cv2.VideoCapture(video)
    num = 0
    frames_apart = 6  # 每 x 帧截取一个图片  1帧 =1/12秒                         # 改 ①
    common_jpg_name = '输出名字'  # 片公共部分的文件名                            # 改 ②
    while True:
        if cap.grab():
            num += 1
            if num % frames_apart == 1:  # 每60帧截取一个图片  1帧 =1/12秒
                flag, frame = cap.retrieve()  # 解码并返回一个帧
                if not flag:
                    continue
                else:
                    cv2.imshow('video', frame)
                    jpg_filename = common_jpg_name + str(int(num / frames_apart + 1))  # 图片完整名字(除.jpg)
                    new = save + "\\" + jpg_filename + ".jpg"  # 从 1 开始
                    print('正在输出:' + jpg_filename + ".jpg(按Esc停止运行)")
                    cv2.imencode('.jpg', frame)[1].tofile(new)
        else:  # 运行完毕自动退出
            break
        if cv2.waitKey(10) == 27:  # 检测到按下Esc时退出
            break


print('欢迎来到视频连续截图自动生成系统!')
video = input('请输入你的视频文件路径(要包含文件名后缀,如:F:/四级核心.mp4):')  # 在此处设置你的视频文件路径以及图片输出路径
savedir = input('请输入你的图片输出文件夹路径(要用/单斜杠隔开):')
if not os.path.exists(savedir):  # 如果输出目录不存在就创建一个
    os.mkdir(savedir)
transfer(video, savedir)  # 主程序启动
print('运行完毕!')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值