将Matplotlib可视化的连续帧的图像转化为视频(代码简单且直接可用)
程序员文章站
2022-04-02 10:56:11
在自己做的过程中,就发现有些博客的代码根本使用不了,各种奇奇怪怪的Bug。所以自己做出来之后,还是整理成一个博客吧,方便之后的人使用。参考博客:https://blog.csdn.net/choumin/article/details/90319477 【这位朋友的代码不错,但有个非常大的问题:他不是按照文件夹中的文件顺序来合成视频,而是打乱的。】我的需求是,我现在通过Matplotlib生成了几十张大小一致的图像,现在需要把这个文件夹下的图像按照顺序进行视频的合成。废话不多说,直接上代码吧~图像大...
在自己做的过程中,就发现有些博客的代码根本使用不了,各种奇奇怪怪的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
上一篇: C语言实现改进clock时钟算法
下一篇: 实现动态条形图——matplotlib