OpenCV把视频拆分成一帧一帧的图片并存放入指定的目录下,代码如下:

import cv2
import os

def apart(video_path, video_name, image_path):
    """
    功能:将视频拆分成图片
    参数:
        video_path:要拆分的视频路径
        video_name:要拆分的视频名字(不带后缀)
        image_path:拆分后图片的存放路径
    """

    # 在这里把后缀接上
    video = os.path.join(video_path, video_name + '.mp4')

    # 提取视频的频率,每1帧提取一个
    frameFrequency = 1

    if not os.path.exists(image_path):
        #如果文件目录不存在则创建目录
        os.makedirs(image_path)

    # 获取视频
    use_video = cv2.VideoCapture(video)

    # 初始化计数器
    count = 0

    # 开始循环抽取图片
    print('Start extracting images!')
    while True:
        res, image = use_video.read()
        count += 1

        # 如果提取完图片,则退出循环
        if not res:
            print('not res , not image')
            break

        # 将图片写入文件夹中
        cv2.imwrite(image_path + str(count) + '.jpg', image)
        print(image_path + str(count) + '.jpg')

    print('End of image extraction!')
    use_video.release()

if __name__ == '__main__':
    video_path = 'video/'
    video_name = 'first_video'
    image_path = 'image/'
    apart(video_path, video_name, image_path)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐