python按帧数提取视频为图片

2021-02-19  本文已影响0人  水煮鱼又失败了

1 场景

使用python,将视频按照帧数提取为图片

2 版本

python:3.6.3

3 依赖

安装cv2依赖

pip install opencv-python

4 代码

4.1 引入依赖

import cv2
import os

4.2 定义函数

def video_to_image(video_path, out_image_folder_path, frame_frequency):
    """
    视频解析为图片到指定文件夹
    :param video_path:视频路径
    :param out_image_folder_path:解析后的图片文件夹路径
    :param frame_frequency:帧数(每多少帧读解析一张图片)
    :return:
    """
    # 如果文件目录不存在则创建目录
    if not os.path.exists(out_image_folder_path):
        os.makedirs(out_image_folder_path)
    # 加载视频文件
    camera = cv2.VideoCapture(video_path)
    # 帧数
    times = 0
    while True:
        times += 1
        res, image = camera.read()
        if not res:
            break
        if times % frame_frequency == 0:
            cv2.imwrite(out_image_folder_path + str(times) + '.jpg', image)

4.3 使用

if __name__ == '__main__':
    # 视频路径
    tmp_video_path = os.path.join("", "", 'video/v1.mp4')
    # 输出目录
    tmp_out_image_folder_path = os.path.join("", "", 'picOut/')
    # 视频转换为图片
    video_to_image(tmp_video_path, tmp_out_image_folder_path, 50)

4.4 结果

可以看到,视频对应帧数的图片被输出到指定目录(当前测试,每50帧获取一次图片)

1.png
上一篇下一篇

猜你喜欢

热点阅读