Python——图片与视频互转(亲测有效)

一、 图片转视频

  1. 任务需求背景

    在标注数据的过程中,需要【反复】浏览大量图片(万张以上的数量级),确认图片中的目标类别以及室内户型布局。但是,在电脑上浏览图片有很大的不足:(a)需要持续点击鼠标或者键盘;(b)图片加载跟不上点击速度。
     
    值得注意的是:网上有很多代码(图片转视频),但是真正能用的几乎很少,本博文的代码经过测试,可以成功生成视频。

  2. 代码依赖库

    opencv-python==4.5.2
    numpy==1.19.2
    glob(python自带模块)

  3. 代码实战

    基本步骤如下:
    a. 使用glob获取路径下的所有图片;
    b. cv2.imread()读取所有图片;
    c. 将读取的图片存储在新的列表中,img_array
    d. 使用cv2.VideoWriter()创建VideoWriter对象,注意参数的设置;
    e. 使用cv2.VideoWriter().write()保存 img_array 中的每一帧图像到视频文件;
    f. 释放 VideoWriter对象;

    import cv2
    import numpy as np
    import glob
    import os
    
    # 其它格式的图片也可以
    img_array = []
    for filename in glob.glob('E:/3DS1Data/20211118/29984CRL30V00067087/dataset/rgb/*.png'):
        img = cv2.imread(filename)
        height, width, layers = img.shape
        size = (width, height)
        img_array.append(img)
    
    # avi:视频类型,mp4也可以
    # cv2.VideoWriter_fourcc(*'DIVX'):编码格式
    # 5:视频帧率
    # size:视频中图片大小
    out = cv2.VideoWriter('E:/3DS1Data/20211118/29984CRL30V00067087/dataset/project-all.avi',
                          cv2.VideoWriter_fourcc(*'DIVX'),
                          5, size)
    
    for i in range(len(img_array)):
        out.write(img_array[i])
    out.release()
    

    下图是原始图片数据:
    数据
    生成的视频文件(播放中):

在这里插入图片描述

  1. 注意事项

    (1)通过测试发现,Mp4格式的视频清晰度低于 Avi 视频的清晰度;


版权声明:本文为kxh123456原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。