使用Python Matlibplot和im.show()显示图像,为什么它们不同?

时间:2014-01-31 10:47:52

标签: python image

关于使用Python显示图像的快速问题,

之间的区别
im = Image.fromarray(noisyImage)
im.show(noisyImage) 

我明白了:

http://s30.postimg.org/xbkxly81t/other.png

然后,当我使用matplotlib时,我得到了这个:

plt.imshow(noisyImage)
plt.show()

http://s30.postimg.org/64odx64ap/mtlibplt.png

请有人解释为什么,当它的图像相同时,只是不同的显示方法?真迷茫!!颜色甚至来自matplotlib?

还看到第一张图片顶部的所有噪音?如果我不试图改变图像它是好的。感谢

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

PIL的show是一个便利功能,它使用os.system来调用您计算机上某些依赖操作系统的图像查看器。

您可以找出用于显示图像的命令 通过这样做:

In [37]: import ImageShow

In [38]: [viewer.get_command_ex('file')[0] for viewer in ImageShow._viewers]
Out[38]: ['display']

所以在我的Unix机器上,PIL的show正在使用imagemagick的display程序。

Matplotlib的plt.show函数使用tk,例如gtkpyqtwxpython或{{1}}绘制图。