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

运行结果是

 

转载于:https://www.cnblogs.com/subic/p/7929630.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Pythonmatplotlib模块是一个数据可视化工具,可以用来绘制各种类型的图表,包括线图、散点图、柱状图、饼图等。它具有丰富的功能和灵活的接口,可以满足不同需求的数据可视化需求。同时,matplotlib还可以与其他Python库(如NumPy和Pandas)结合使用,进一步扩展其功能。 ### 回答2: matplotlib模块是Python中常用的绘图工具,可用于生成各种静态、动态和交互式的图表、图形、图像以及其他可视化效果。它提供了一个灵活的API,使用户可以使用Python脚本轻松地创建和定制各种图形。 matplotlib可以绘制各种类型的图表,包括线图、散点图、柱状图、饼图、等高线图、3D图等等。用户可以通过使用不同的函数和参数来控制图表的样式、颜色、标签、标题等。它还支持添加图例、网格、轴标签、注释等元素,以增强图表的可读性和美观性。 matplotlib还允许用户导入和处理数据,并在图表中显示。用户可以使用numpy等库生成模拟数据,然后使用matplotlib绘制相关图表。此外,matplotlib还支持读取和处理各种数据格式,如CSV、TXT、Excel等。 在动态和交互式图表方面,matplotlib也提供了相应的功能。用户可以使用动画模块创建动态图像,通过逐帧更新数据来展示某个过程变化。同时,matplotlib也支持与用户交互,用户可以通过鼠标点击、拖动等交互操作改变图表中的元素,并实时显示结果。 总之,matplotlib模块是Python中功能强大、使用广泛的绘图工具。它提供了丰富的绘图函数和参数,使用户可以轻松地创建各种类型的图表。无论是静态图表还是动态交互式图像,matplotlib都能满足用户的需求,为数据分析、可视化和报告生成提供了强大的支持。 ### 回答3: matplotlib是一个用于绘制二维图表和可视化数据的Python库。它有广泛的功能和灵活性,可以用于生成各种类型的图形,包括线图、散点图、柱状图、饼图等。 matplotlib的设计灵感来自于Matlab,因此它的使用方法和Matlab类似,使得熟悉Matlab的用户很容易上手。同时,matplotlib还提供了一个由类似于Matlab的函数和API组成的pyplot模块,使用户可以方便地绘制图表,修改轴线、标签和图例等。 在matplotlib中,图表包含一个或多个轴对象(Axes)。每个轴对象都可以包含一个或多个线图、散点图等对象,可以设置标题、轴标签、刻度等属性。用户可以通过修改轴对象的属性来定制图表,例如修改线条的颜色、样式、线宽等。 matplotlib还支持在图表中添加注释、箭头、标记等元素,以增加图表的可读性和信息量。此外,它还提供了各种保存图表的方法,可以将图表保存为图片文件或其他格式,便于发布和分享。 另外,matplotlib具有丰富的扩展功能。用户可以下载和安装各种第三方插件来增强matplotlib的功能,例如seaborn、ggplot等,使其在数据可视化方面更加强大和多样化。 总之,matplotlib是一个功能强大、易于使用的数据可视化工具,可以帮助用户快速生成高质量的图表和可视化效果。无论是在科学研究、数据分析还是商业报告等领域,matplotlib都是一款非常强大的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值