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