嗯,我试图标准化一些(红外)热图数据,以显示它以后。
不过,我仍然坚持规范化,当然可以手工完成,但我不知道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]间隔上。
发布于 2015-03-12 17:21:36
标准化文件在这里可能有点欺骗: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]https://stackoverflow.com/questions/29014516
复制相似问题