On 04.03.2010 11:37, Vinod wrote:
> Hello Friends,
> What is normalization(for image and a signal)?
> What I understand is for eg a signal x = [1 3 5 7 9 11].
> 1) Is it norm_x = x/sum(x) or norm_x = x/sum(|x|). If it is abs values
> of x, why is it so?
> 2) In case of images how do I approach this task? Should I first take
> the normalization of rows and then follow it with that of columns? Or
> would normalization of rows serve my purpose? Is it then necessary to
> move into column processing? Would it involve dividing of each pixel by
> the sum of the row(relevant0 or by the whole image sum?
> 3) What is the need/use and application of normalization. What data can
> I get from image normalization?
Normalization is a process in which you scale input signal to a full
range of output signal. Thus if your input is in=[0 0.5 10] and output
range is range=[-1,1] you want your input data to be linearly scaled so
that the min(normalize(in))=-1 and max(normalize(in))=1.
For this reason none of the formulas you provided will perform
normalization in the sense as it is widely understood.
One of many possible approaches to signal normalization in Matlab is:
scale = (max(in)-min(in))/(range(2)-range(1));
out = in*scale;
out = out+range(1)-min(out);
2) You should perform image normalization collectively on rows and
colums at the same time (of course, unless you want to perform separate
normalization of each row/column). The code above should also work well
with 2D matrices after replacing max(in) with max(max(in)) (the same
with min) to find the maximum/minimum value in your matrix.
3) I guess you should do some background reading before starting your
work. There are many answers, depending on the application where you
normalize your data. In image processing you may want to do that to
improve image contrast.