我尝试将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
答案 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