我有一个灰度图像:
但是plt.inshow显示错误的图像(显然,它与原始图像不同):
from PIL import Image
import matplotlib.pyplot as plt
import matplotlib.cm as cm
img = Image.open('...')
plt.imshow(image, cmap=cm.gray)
Run Code Online (Sandbox Code Playgroud)
输出是
我尝试了该img.show()方法,它可以显示与原始图像相同的图像。
我的问题是:如何使用pyplot?
我曾尝试使用 matplotlib 将图像显示为灰度,但它仍然无法正常工作。
imshow默认情况下将拉伸和规范化数据,使最小值变为黑色,最大值变为白色。您的数据当前在 90 到 138 的范围内,因此它将映射90->black和138->white。
为了防止这种情况发生,你可以给出imshow真正的最小值和最大值;在这种情况下,我认为您要设置vmin=0, vmax=255. 尝试这个:
plt.imshow(img, cmap=cm.gray, vmin=0, vmax=255)
Run Code Online (Sandbox Code Playgroud)
对我来说,复制你的原始图像。