我将从matlab迁移到python并使用imshow函数。
我似乎无法理解为什么它没有将128值显示为灰色,因为我选择了CMAP作为灰度。
它似乎使用灰度表示最高值(128)和最低值。我想用灰度来表示[0:255]。我该怎么做?
最佳答案
使用vmin
和vmax
参数:
plt.imshow(bg, cmap=plt.get_cmap('gray'), vmin=0, vmax=255)
在不指定
vmin
和vmax
的情况下,plt.imshow
自动将其范围调整为数据的最小值和最大值。我不知道如何为所有imshow绘图设置默认值
vmin
和vmax
参数,但您可以使用functools.partial
准备一个自定义imshow-like命令,并设置默认参数:import matplotlib.pyplot as plt
import numpy as np
import functools
bwimshow = functools.partial(plt.imshow, vmin=0, vmax=255,
cmap=plt.get_cmap('gray'))
dots = np.random.randn(10, 10)*255
bwimshow(dots)
cbar = plt.colorbar()
plt.show()
关于python - imshow(img,cmap = cm.gray)显示白色的128值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12760797/