在PIL转换后不能用matplotlib绘制图像(' L')

时间:2018-03-05 12:16:32

标签: python matplotlib python-imaging-library spyder

我尝试将RGB图像转换为灰度图像并绘制它们。但是我无法在PIL转换后绘制灰度图像(' L')。 Spyder控制台(Python3.6)中报告了以下错误。但是,如果我不使用转换(' L'),则可以绘制原始图像。

文件" d:\ ProgramData \ Anaconda3 \ lib \ site-packages \ matplotlib \ image.py",第430行,在_make_image中     如果A.mask.shape == A.shape:

AttributeError:' numpy.ndarray'对象没有属性' mask'

请参阅下面的我的python代码:

from PIL import Image, ImageFilter
import tensorflow as tf
import matplotlib.pyplot as plt
file_name='images\\2.4.1.png'
im0 = Image.open(file_name)

plt.imshow(im0)
plt.show()

im = im0.convert('L')
plt.imshow(im, cmap='gray')
plt.show()  # Not working here

1 个答案:

答案 0 :(得分:0)

尝试使用LA代替L,如下所示:

from PIL import Image, ImageFilter
import matplotlib.pyplot as plt

file_name = r'images\2.4.1.png'
im0 = Image.open(file_name).convert('LA')
plt.imshow(im0, cmap='gray')
plt.show()

该参数指定转换模式,在您的情况下,PNG文件可能具有Alpha通道,因此需要A

另请参阅:Pillow modes