Matplotlib动画质量损失

2024-09-26 22:08:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试使用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")

Tags: imagecreatenp质量figrange动画plt

热门问题