栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python opencv 视频保存图片

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python opencv 视频保存图片

B站代码讲解视频
'''
B站:Python图像识别
抖音:Python图像识别
西瓜视频:Python图像识别
'''
import cv2
import time
import numpy as np
import os



def save_img(video_path, result_path, interval_num, resize_wh, rot90=False, show=False):
    '''
    将视频每帧保存到文件夹,命名格式:视频名_时间戳_num
    :param video_path: 视频路径
    :param result_path: 结果保存路径
    :param interval_num: 每间隔几帧保存一帧
    :param resize_wh: 指定保存图片的长宽
    :param rot90: 是否90度旋转图片
    :param show: 是否进行 窗口展示图片
    :return:
    '''
    i = 0
    cap = cv2.VideoCapture(video_path)
    # 视频长宽
    w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
    h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
    while(True):
        s_time = int(time.time())
        i += 1
        ret, frame = cap.read()
        if i % interval_num != 0:
            continue
        # 横屏转竖屏
        if rot90:
            frame = np.rot90(frame)
        milliseconds = cap.get(cv2.CAP_PROP_POS_MSEC)
        # 转为 s
        # s_time = round(milliseconds / 1000, 2)
        # 进行resize
        if resize_wh != False:
            if w != resize_wh[0] or h != resize_wh[1]:
                frame = cv2.resize(frame, resize_wh)
        file_path = os.path.join(result_path, name + '/' + name + '_' + str(s_time) + '_' + str(int(i)) + '.jpg')
        cv2.imencode('.jpg', frame)[1].tofile(file_path)
        # 展示窗口
        if show:
            cv2.imshow('frame',frame)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break


if __name__ == '__main__':
    # 视频名
    video_path = r'C:Users86182Desktoptesttest3.mp4'
    # 保存路径
    result_path = r'./'
    # 间隔interval_num取一帧
    interval_num = 1
    # resize_wh = (1920, 1080)
    resize_wh = False
    rot90 = False
    show = False
    name = video_path.split('\')[-1].split('.')[0]
    if not os.path.exists(os.path.join(result_path, name)):
        os.makedirs(os.path.join(result_path, name))
    # 视频到图片
    save_img(video_path, result_path, interval_num, resize_wh, rot90, show)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938063.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号