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

为什么使用 Matplotlib 的 imshow() 时我的灰度图像显示为彩色?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-28 06:18:29180浏览

Why Does My Grayscale Image Appear in Color When Using Matplotlib's imshow()?

解决 Matplotlib 中灰度图像的显示问题

在尝试使用 Matplotlib 的 imshow() 显示灰度图像时,您遇到了图像显示为色彩图的情况。当您的目标是在图像上绘制颜色时,这可能会令人沮丧。

解决方案

出现差异是因为 imshow() 函数分配了颜色图默认为图像。要纠正此问题,请显式指定 cmap 参数并将其设置为“gray”或“gray_r”以分别显示灰度或反灰度:

<code class="python">import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

# Open and convert the image to grayscale
fname = 'image.png'
image = Image.open(fname).convert("L")

# Convert the image to a matrix
arr = np.asarray(image)

# Display the grayscale image
plt.imshow(arr, cmap='gray', vmin=0, vmax=255) # Use 'gray_r' for inverse grayscale
plt.show()</code>

如此修改后的代码所示,指定颜色图可确保图像正确渲染为灰度。您现在可以继续执行您的预期任务,在图像上绘制颜色。

以上是为什么使用 Matplotlib 的 imshow() 时我的灰度图像显示为彩色?的详细内容。更多信息请关注PHP中文网其他相关文章!

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