Matplotlib imshow()的默认规范化与自定义实现

时间:2019-10-19 02:34:55

标签: python matplotlib imshow

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()

这是图像的外观:

A vs B

很显然,它们并不相同。那么,是否只是由于不同的颜色图?如果是这样,对于给定的应用程序,我如何事先知道将使用哪种颜色图?

0 个答案:

没有答案