首页  >  文章  >  后端开发  >  为什么使用 Matplotlib 时我的灰度图像会显示颜色图?

为什么使用 Matplotlib 时我的灰度图像会显示颜色图?

DDD
DDD原创
2024-10-27 10:11:03993浏览

Why Does My Grayscale Image Appear With a Colormap When Using Matplotlib?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn