如何从 matplotlib 中的图像数组制作视频? [英] How can I make a video from array of images in matplotlib?
本文介绍了如何从 matplotlib 中的图像数组制作视频?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有几张图片展示了事物是如何随时间变化的.我使用以下代码将它们可视化为同一图上的许多图像:
I have a couple of images that show how something changes in time. I visualize them as many images on the same plot with the following code:
import matplotlib.pyplot as plt
import matplotlib.cm as cm
img = [] # some array of images
fig = plt.figure()
for i in xrange(6):
fig.add_subplot(2, 3, i + 1)
plt.imshow(img[i], cmap=cm.Greys_r)
plt.show()
并得到类似:
这没关系,但我宁愿为它们设置动画以获得 类似这个视频的东西.我怎样才能用 python 实现这一点,最好(不一定)用 matplotlib
Which is ok, but I would rather animate them to get something like this video. How can I achieve this with python and preferably (not necessarily) with matplotlib
推荐答案
为了自己的未来,这就是我的结局:
For a future myself, here is what I ended up with:
def generate_video(img):
for i in xrange(len(img)):
plt.imshow(img[i], cmap=cm.Greys_r)
plt.savefig(folder + "/file%02d.png" % i)
os.chdir("your_folder")
subprocess.call([
'ffmpeg', '-framerate', '8', '-i', 'file%02d.png', '-r', '30', '-pix_fmt', 'yuv420p',
'video_name.mp4'
])
for file_name in glob.glob("*.png"):
os.remove(file_name)
这篇关于如何从 matplotlib 中的图像数组制作视频?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文