Matplotlib动画质量下降

时间:2017-06-28 21:55:03

标签: python animation matplotlib ffmpeg imshow

我目前正在尝试使用matplotlib来使用imshow为网格设置动画。但是,我发现动画中的质量损失相当大。

下面是一个简单的动画,很好地说明了我的问题。如果您查看 imagelist 的任何特定帧,您将看到颜色之间没有锯齿或渐变。但是,如果我然后看一下我的动画的一帧,那就不再是这样了。现在我的颜色块之间有一个4-5像素的渐变。有谁知道如何解决这种压缩?动画的文件大小并不重要,只要我能获得高质量的动画。

#Create list of images
image=np.array([[[0,0,0],(0.7,0,0),(0,0,0),(0,0,0.8)]])
imagelist=[]
for i in range(0,100):
    image[0][1][0]=i/100
    imagelist.append(np.copy(image))

#Create figure    
fig = plt.figure()
plt.axis('off')
im = plt.imshow(imagelist[0], vmin=0, vmax=255,interpolation='none');

#Animation
def updatefig(j):
    im.set_array(imagelist[j])
    return [im]
ani = animation.FuncAnimation(fig, updatefig, frames=range(len(imagelist)), interval=20, blit=False)

#Save animation
FFMpegWriter = animation.writers['ffmpeg']
mywriter = FFMpegWriter(fps=30, bitrate=5000)
ani.save("test.mp4", writer=mywriter,codec="libx264")

0 个答案:

没有答案