Matplotlib(Python)规范化数据

时间:2015-03-12 15:57:47

标签: python matplotlib normalization

我正在尝试对某些(红外)热成像数据进行标准化,以便稍后显示。

然而,我仍然坚持正常化,我当然可以手工完成,但我想知道为什么matplotlib代码不起作用,python代码如下所示:

import numpy as N
import matplotlib.colors as colors

test2 = N.array([100, 10, 95])
norm = colors.Normalize(0,100)
for pix in N.nditer(test2, op_flags=['readwrite']):
    val = (norm.process_value(pix)[0])
    print (val)

img = norm.process_value(test2)[0]
print(img)

现在我希望vals或img显示正确的处理数据。取决于matplotlib.colors.Normalize.process_value实际应该作为参数获得的内容。

但无论如何:两个函数都没有规范化,只返回原始函数..根本不在[0, 1]区间。

1 个答案:

答案 0 :(得分:1)

documentation of Normalize在这里可能有点欺骗:process_value是一个仅用于预处理(和静态)的函数。实际用法用这句话描述:

  

一个类,当被调用时,可以将数据规范化为[0.0,1.0]   间隔。

因此,当您调用类时,会发生规范化:

import numpy as N
import matplotlib.colors as colors

test2 = N.array([100, 10, 95])
norm = colors.Normalize(0,100)
for pix in N.nditer(test2, op_flags=['readwrite']):
    val = (norm(pix))
    print (val)

img = norm(test2)
print(img)

输出:

1.0
0.1
0.95
[ 1.    0.1   0.95]