使用matplotlib将图像显示为灰度

我正在尝试使用matplotlib.pyplot.imshow()来显示灰度图像。 我的问题是,灰度图像显示为一个色彩表。 我需要灰度,因为我想用颜色在图像的顶部绘制。

我读了图像,并转换为灰度使用PIL的Image.open()。convert(“L”)

image = Image.open(file).convert("L") 

然后我将图像转换为matrix,以便我可以轻松地使用一些image processing

 matrix = scipy.misc.fromimage(image, 0) 

但是,当我这样做

 figure() matplotlib.pyplot.imshow(matrix) show() 

它使用色彩映射显示图像(即不是灰度)。

我在这里做错了什么?

5 Solutions collect form web for “使用matplotlib将图像显示为灰度”

以下代码将从文件image.png加载图像,并将其显示为灰度。

 import numpy as np import matplotlib.pyplot as plt from PIL import Image fname = 'image.png' image = Image.open(fname).convert("L") arr = np.asarray(image) plt.imshow(arr, cmap='gray') plt.show() 

如果要显示反灰度,请将cmap切换到cmap='gray_r'

尝试使用灰度色彩表?

比如像

 imshow(..., cmap=pyplot.cm.binary) 

有关colormap的列表,请参阅http://scipy-cookbook.readthedocs.org/items/Matplotlib_Show_colormaps.html

import matplotlib.pyplot as plt

你也可以在代码中运行一次

 plt.gray() 

这将默认显示灰度图像

 im = array(Image.open('I_am_batman.jpg').convert('L')) plt.imshow(im) plt.show() 

尝试这个:

 import pylab from scipy import misc pylab.imshow(misc.lena(),cmap=pylab.gray()) pylab.show() 

我会使用get_cmap方法。 例:

 import matplotlib.pyplot as plt plt.imshow(matrix, cmap=plt.get_cmap('gray')) 
  • Python argparse和bash完成
  • 删除位于Brew安装位置以外的Python框架文件的最安全方法是什么?
  • 为什么在Python中的线程内调用sys.exit()不会退出?
  • 使用Requests包时出现SSL InsecurePlatform错误
  • 在Python中初始化一个stringvariables:“”或None?
  • 如何正确地sorting一个数字string里面?
  • Python,我应该实现__ne __()运算符基于__eq__?
  • Python中用于静态types检查的工具
  • Python Pandas所选列的最大值
  • 如何为python http连接指定经过身份validation的代理?
  • 如何将一个圆形的面具应用到一个numpy数组?