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
运行结果是

python matplotlib 播放图片变化过程的更多相关文章
- Python matplotlib图片转化成矢量图并裁剪
Python目前可以生成的图的格式是:eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff 在写论文时候我一般生成png ...
- python 将png图片格式转换生成gif动画
先看知乎上面的一个连接 用Python写过哪些[脑洞大开]的小工具? https://www.zhihu.com/question/33646570/answer/157806339 这个哥们通过爬气 ...
- 用Python绘制全球疫情变化地图
目前全球疫情仍然比较严重,为了能清晰地看到疫情爆发以来至现在全球疫情的变化趋势,我绘制了一张疫情变化地图,完整代码共 230 行,需要的朋友在公众号回复关键字 疫情地图 即可. 废话不多说,先上图 下 ...
- python matplotlib plot 数据中的中文无法正常显示的解决办法
转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...
- Python Matplotlib绘图库 安装
一般我们在做科学计算的时候,首先会想到的是matlab,但是呢,一想到matlab安装包那么大,我就有点不想说什么了. Matplotlib 是python最著名的绘图库,它提供了一整套和matlab ...
- 转:使用 python Matplotlib 库 绘图 及 相关问题
使用 python Matplotlib 库绘图 转:http://blog.csdn.net/daniel_ustc/article/details/9714163 Matplotlib ...
- 安装python Matplotlib 库
转:使用 python Matplotlib 库 绘图 及 相关问题 使用 python Matplotlib 库绘图 转:http://blog.csdn.net/daniel_ustc ...
- python matplotlib.pyplot对图像进行绘制
imshow()是对图像进行绘制 imshow()函数格式为: matplotlib.pyplot.imshow(X, cmap=None) X: 要绘制的图像或数组. cmap: 颜色图谱(colo ...
- OpenGL ES: (5) OpenGL的基本概念、OpenGL ES 在屏幕产生图片的过程、OpenGL管线(pipeline)
一. OpenGL的基本概念 OpenGL 的结构可以从逻辑上划分为下面 3 个部分: 图元(Primitives) 缓冲区(Buffers) 光栅化(Rasterize) 图元(Primitives ...
随机推荐
- Java简历与面试
尊重原创:http://blog.csdn.net/love_java_cc/article/details/78292347 Java就业指导 想要成为合格的Java程序员或工程师到底需要具备哪 ...
- 使用npm install报错-4048 operation not permitted解决
刚刚使用npm install时一直报错-4048 operation not permitted,也尝试了多种方法,终于使问题得到解决,这里总结几种方法,先贴图: 一:权限问题 首先看到operat ...
- jQuery中获取文档的高度、可视区域高度以及滚动条距页面顶部的高度
在写页面的时候,经常会碰到这样的情况,就是要获取文档的高度.可视区域高度或者滚动条距页面顶部的高度等情况. 但我总是有些爱搞混淆了,这里还是简单做个笔记吧,这里只限于使用jQuery来获取. 1.获取 ...
- 7系列高速收发器总结 GTP IP核使用篇
上一篇7系列收发器博文讲解了GTP IP核的基本配置,本文继续分析如何将它使用起来.生成IP核后打开example design,先看看工程中包含的文件结构. 顶层文件下包含了gtp ip核系统顶层文 ...
- python中的Queue(队列)详解
一.Queue简介 python中的队列分类可分为两种: 1.线程Queue,也就是普通的Queue 2.进程Queue,在多线程与多进程会介绍. Queue的种类: FIFO: Queue.Que ...
- NumPy-矩阵部分
NumPy-矩阵部分 [TOC] NumPy 简介 numpy可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多. 安装NumPy pi ...
- 优化 gruop by 语句
默认情况下,mysql对所有的gruop by col1,col2...的字段进行排序.如果查询包含group by但用户想要避免排序结果的消耗,则可以指定order by null禁止排序. exp ...
- linux mysql 忽略大小写
修改/etc/my.cnf 2)在[mysqld]下加入一行:lower_case_table_names=1 3)重新启动数据库即可.
- Servlet--HttpServletResponse的2个操作流的方法
前面已经说过无数多次了,我们的项目都是基于HTTP协议的一次请求,一次响应.实际编码中,我们在处理完逻辑后一般是跳转到一个页面上,或者用输出流返回json字符串.其实跳转到一个页面往往也就是JSP,J ...
- 如何用docker部署redis cluster
前言 由于本人是个docker控,不喜欢安装各种环境,而且安装redis-trib也有点繁琐,索性用docker来做redis cluster. 本文用的是伪集群,真正的集群放到不同的机器即可.端口是 ...