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('运行完毕!')
微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Syc1102g

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值