Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib imshow()';s默认规范化与自定义实现_Python_Matplotlib_Imshow - Fatal编程技术网

Python Matplotlib imshow()';s默认规范化与自定义实现

Python Matplotlib imshow()';s默认规范化与自定义实现,python,matplotlib,imshow,Python,Matplotlib,Imshow,Matplotlib中“norm”参数的描述表示,默认情况下,“使用线性缩放将最低值映射为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 ha

Matplotlib中“norm”参数的描述表示,默认情况下,“使用线性缩放将最低值映射为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()
以下是图像的外观:


显然,它们不一样。那么,这仅仅是因为不同的颜色贴图吗?如果是这样,对于给定的应用程序,我如何事先知道将使用哪种颜色贴图?

就在您引用的句子后面,它说“RGB(a)数据忽略此参数。”。这意味着标准化和颜色映射仅适用于二维阵列(即形状
(m,n)
),而不适用于图像(即形状
(m,n,3)
)。有关详细信息,请参阅