cv2 视频拆分图片

import os
import uuid
import glob
from random import random
import cv2 as cv


def mkdir(path):
    is_exits = os.path.exists(path)
    if not is_exits:
        os.makedirs(path)


def cap2jpg(cap_path, save_path, ratio=0.):
    count = 0
    cap = cv.VideoCapture(cap_path)
    while True:
        ret, frame = cap.read()
        if ret:
            if random() < ratio:
                file_path = os.path.join(save_path, uuid.uuid4().hex+'.jpg')
                cv.imwrite(file_path, frame)
                count += 1
                print(f"第{count}张,{file_path}")
        else:
            break
    cap.release()
    return count


def main():
    img_save_path = "./data/images"
    video_path = "./data/video/IMG_0289.MOV"
    mkdir(img_save_path)
    count = cap2jpg(video_path, img_save_path, ratio=0.3)
    print(f"{count}张图片已保存到{img_save_path}")


if __name__ == '__main__':
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值