开发者

Normalization of intensity, matlab

I have real world 3D points which I want to project on a plane. The most of intensity [0开发者_JS百科-1] values fall in lower region (near zero).

Please see image 'before' his attched below.

Normalization of intensity, matlab

I tried to normalize values

Col_=Intensity; % before

max(Col_)=0.46;min(Col_)=0.06;

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

max(Col)=1;min(Col)=0;

But still i have maximum values falling in lower region (near zero). Please see second fig after normalization.

Normalization of intensity, matlab

Result is still most of black region.Any suggestion. How can I strech my intensity information. regards,!


It looks like you have already normalized as much as you can with linear scaling. If you want to get more contrast, you will have to give up preserving the original scaling and use a non-linear equalization.

For example: http://en.wikipedia.org/wiki/Histogram_equalization

If you have the image processing toolbox, matlab will do it for you: http://www.mathworks.com/help/toolbox/images/ref/histeq.html

It looks like you have very few values outside the first bin, if you don't need to preserve the uniqueness of the intensities, you could just scale by a larger amount and clip the few that exceed 1.


When I normalize intensities I do something like this:

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

This will normalize your data points to the range [0,1].

Now, since you have many small values, you might be able to make out small changes better through log scaling.

Col_scaled = log(1+Col);

Linear scaling with such data rarely works for me. Using the log function is akin to tweaking gamma for visualization purposes.


I think the only thing you can do here is reduce the range. After normalization do the following:

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

This will simply truncate the range of the data, which may be sufficient for what you are doing. Then you can re-normalize again if you wish.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜