最近想将原图片和处理后的图片放在一起观察图片的变化过程。但是网上并么有找到有用的示例代码,所以粘出来和大家分享一下。

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

运行结果是

最新文章

  1. python之类介绍
  2. PHP中的header()函数作用
  3. 在windows上如何安装python web引擎jinja2
  4. Java开发中经典的小实例-(输入三个数字判断三角形类型)
  5. ES5 对数组方法的扩展 以及 正则表达式
  6. 清北学堂2017NOIP冬令营入学测试P4745 B’s problem(b)
  7. web中异步和同步的理解
  8. [LeetCode]题解(python):049-Groups Anagrams
  9. Chrome浏览器下调试SASS
  10. flash链接需要后台调用时的插入flash方法
  11. [Machine Learning] Probabilistic Graphical Models:二、Bayes Network Fundamentals(1、Semantics & Factorization)
  12. 获取C++类成员变量的地址偏移
  13. memcached几个easy被忽略但很实用的命令
  14. boost asio 异步实现tcp通讯
  15. JavaScript基础学习(四)—Object
  16. (转载)CloseableHttpClient设置Timeout
  17. 20175311 2018-2019-2 《Java程序设计》第四周学习总结
  18. python之路--动态传参,作用域,函数嵌套
  19. C# 循环语句 for
  20. BOM - 浏览器API

热门文章

  1. JXLS 2.4.0系列教程(一)——最简单的模板导出
  2. vhost:一种 virtio 高性能的后端驱动实现
  3. 转:C++与JAVA语言区别
  4. mysql 远程连接数据库的二种方法
  5. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address 
  6. 织梦DEDE网站后台如何上传附件
  7. 遇到安装app不识别的情况
  8. eclipse 按住ctrl 按钮没有反映
  9. 用photoshop将图片四角变成圆角
  10. log4j:ERROR Category option " 1 " not a decimal integer.错误解决