Matplotlib的axes.imshow() documentation中的“规范”参数说明说,默认情况下,“使用线性比例尺将最小值映射到0,将最大值映射到1”进行标准化。
这意味着形式为f(x)=(x-x_min)/(x_max-x_min)的函数会将图像值x映射到介于0和1之间的f(x)。但是,我无法重现此图像行为,如果我自己对图像进行归一化然后显示:
import numpy as np
import matplotlib.pyplot as plt
A = np.random.normal(size=(4,5,3))
# A does have negative values
print(np.min(A), np.max(A))
# normalizing to range [0,1]
B = (A - np.min(A))/np.ptp(A)
figure = plt.figure()
ax1 = figure.add_subplot(121)
ax1.imshow(A)
ax2 = figure.add_subplot(122)
ax2.imshow(B)
plt.show()
这是图像的外观:
很显然,它们并不相同。那么,是否只是由于不同的颜色图?如果是这样,对于给定的应用程序,我如何事先知道将使用哪种颜色图?