强度标准化,matlab

时间:2011-07-22 14:45:13

标签: matlab normalization

我想在飞机上投射真实世界的3D点。大多数强度[0-1]值落在较低区域(接近零)。

请在下方看到'之前'的图像。 before normalization of data

我试图将值标准化

Col_ =强度; <%p之前的%

MAX(山口_)= 0.46;分钟(山口_)= 0.06;

Col =(Col_-min(Col _))/(max(Col _) - min(Col _));%after

MAX(COL)= 1;分钟(COL)= 0;

但我仍有最大值落在较低区域(接近零)。 请在标准化后看第二张图。

After normalization of data

结果仍是黑色区域的大部分。任何建议。如何拉伸我的强度信息。 的问候,!

3 个答案:

答案 0 :(得分:1)

看起来您已经使用线性缩放进行了规范化。如果你想获得更多的对比度,你将不得不放弃保留原始缩放并使用非线性均衡。

例如:http://en.wikipedia.org/wiki/Histogram_equalization

如果您有图像处理工具箱,matlab将为您完成: http://www.mathworks.com/help/toolbox/images/ref/histeq.html

看起来你在第一个bin之外的值非常少,如果你不需要保持强度的唯一性,你可以缩放更大的数量并剪掉超过1的几个。

答案 1 :(得分:1)

当我将强度标准化时,我会做这样的事情:

Col = Col - min(Col(:));
Col = Col/max(Col(:));

这会将您的数据点标准化为[0,1]范围。

现在,由于您有许多小值,因此您可以通过日志缩放更好地进行小的更改。

Col_scaled = log(1+Col);

使用此类数据进行线性缩放对我来说很少有用。使用log函数类似于为可视化目的调整gamma。

答案 2 :(得分:0)

我认为你唯一可以做的就是缩小范围。 规范化后,执行以下操作:

t = 0.1;
Col(Col > t) = t;

这将简单地截断数据的范围,这可能足以满足您的需要。然后,如果您愿意,可以再次重新标准化。