在自己做的过程中,就发现有些博客的代码根本使用不了,各种奇奇怪怪的Bug。所以自己做出来之后,还是整理成一个博客吧,方便之后的人使用。

参考博客:https://blog.csdn.net/choumin/article/details/90319477 【这位朋友的代码不错,但有个非常大的问题:他不是按照文件夹中的文件顺序来合成视频,而是打乱的。】

我的需求是,我现在通过Matplotlib生成了几十张大小一致的图像,现在需要把这个文件夹下的图像按照顺序进行视频的合成。
废话不多说,直接上代码吧~

图像大小一致:

import cv2

def images_to_video(path):
    img_array = []
    
    imgList = os.listdir(path)
    imgList.sort(key=lambda x: int(x.split('.')[0])) 
    for count in range(0, len(imgList)): 
        filename = imgList[count]
        img = cv2.imread(path + filename)
        if img is None:
            print(filename + " is error!")
            continue
        img_array.append(img)

    height, width, layers = img.shape
    size = (width, height)
    fps = 5  # 设置每帧图像切换的速度
    out = cv2.VideoWriter('demo-jitter.avi', cv2.VideoWriter_fourcc(*'DIVX'), fps, size)
 
    for i in range(len(img_array)):
        out.write(img_array[i])
    out.release()
 
def main():
    path = "/Users/XXX/workspace-dil/output_jitter/"  # 改成你自己图片文件夹的路径
    images_to_video(path)
 
if __name__ == "__main__":
    main()

注意️:要记得改图片文件夹的路径!

图像大小不一致:

参考上面的参考博客的内容,自己将图片大小改为一致。

如果本文对你有用,请点赞、收藏、评论吧!~留下你的足迹给我写博客多一点的鼓励哈哈哈!

本文地址:https://blog.csdn.net/hahameier/article/details/110915953