Matplotlab显示灰度图问题
- Python
- 2015-06-28
- 141热度
- 0评论
我想要使用Matplotlab显示图片转换后的灰度图。代码如下:
from PIL import Image
from pylab import *
im = array(Image.open('tiger.jpg').convert('L'))
imshow(im)
show()
与书上的例子几乎一模一样,运行结果却是这样:
很明显,以上并不是灰度图。出了什么问题呢?然后我看到了这个StackOverFlow上的问题。以下是原因所在:
matplotlib's imshow
is aimed at scientific representation of data - not just image data. By default it's configured to use a high constrast color palette.
于是修改代码如下:
from PIL import Image
from pylab import *
import matplotlib.cm
im = array(Image.open('tiger.jpg').convert('L'))
imshow(im, cmap=matplotlib.cm.Greys_r)
show()
再次运行,得到结果:
-------------------------------------------------------------------------------------------------------------------
另一种解决方法:在显示图像之前,调用pylab.gray()函数。