python matplotlib 播放圖片變化過程


   最近想將原圖片和處理后的圖片放在一起觀察圖片的變化過程。但是網上並么有找到有用的示例代碼,所以粘出來和大家分享一下。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import animation
from PIL import Image
img_ori = np.array(Image.open('5.png'))
img_tran = np.load('img_tran.npy')
fig = plt.figure()
plt.subplot(1, 2, 1)
plt.imshow(img_ori)
plt.subplot(1, 2, 2)
i = [i for i in range(200) if i % 5 == 0]
def update(i):
return plt.imshow(img_tran[i].reshape([28, 28]))
ani = animation.FuncAnimation(fig, update)
# ani.save('contrast.mp4', fps=15,
# extra_args=['-vcodec', 'libx264'],
# writer='ffmpeg_file')
ani.save('contrast.gif', writer='imagemagick', fps=30)
# plt.show()

簡單分析一下,輸入是一張手寫數字的圖片,實際上我是將這張圖片經過了一個自編碼網絡,通過求輸入與輸出的距離,然后反向傳播迭代權重和偏置。最后形成一張接近原圖的圖像。具體的就不細講了,這里我主要是講如何顯示出來這些數據。我將迭代生成的圖像保存在‘img_train.npy’文件里。

i = [i for i in range(200) if i % 5 == 0]

其實,img_tran是一個維度為(1000,784, 1)的數組,我就顯示了其中一部分,i 也就是一個索引列表,索引要顯示的圖像。后面就是利用animation.FuncAnimation函數顯示動圖,該函數的具體細節可以自行google。然后由於博客園上傳不了視頻,我就在下面加了一行保存為gif的代碼。最后可能你會遇到這樣的問題,

KeyError: 'ffmpeg'

安裝這個庫就行。具體參考http://www.jianshu.com/p/c41d4127cc7d

運行結果是

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM