使用 Matplotlib 将图像显示为灰度
使用 matplotlib.pyplot.imshow() 处理图像时,将它们转换为灰度对于用颜色覆盖元素。为了方便这种转换,通常使用 PIL 的 Image.open().convert("L") 函数。
问题
尽管使用 PIL 将图像转换为灰度,使用 matplotlib.pyplot.imshow() 显示它会导致图像显示颜色图而不是真正的灰度。
解决方案
要解决此问题,它调用 matplotlib.pyplot.imshow() 时指定颜色图参数至关重要。默认情况下,matplotlib 选择可能将颜色引入图像的颜色图。为了保证灰度表示,设置 cmap='gray' 并使用 vmin=0 和 vmax=255 显式定义灰度值范围。
示例代码
以下代码代码片段演示了如何加载图像、将其转换为灰度并显示它:
<code class="python">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', vmin=0, vmax=255) plt.show()</code>
或者,如果您更喜欢逆灰度表示,请将 cmap 参数修改为“gray_r”。
以上是为什么使用 Matplotlib 时我的灰度图像会显示颜色图?的详细内容。更多信息请关注PHP中文网其他相关文章!