Borrar filtros
Borrar filtros

how can i perform gray scale image normalization???

94 visualizaciones (últimos 30 días)
mmm ssss
mmm ssss el 18 de En. de 2012
Comentada: Syed Ahson Ali Shah el 10 de Feb. de 2022
i want to implement normalization to gray scale image to reduce the effect of illumination's differences.
the eq. of the grayscale normalization is :
y=((x-min)*255/(max-min))
x : gray scale value of original image.
y : gray scale value of op image(after normalization).
min : minimum gray scale for the original image.
max : maximum gray scale for the original image.
i tried to perform this by :
m=imread();
min1=min(min(m));
max1=max(max(m));
y=((m-min1).*255)./(max1-min1);
imshow(m);figure,imshow(y);
but it is wrong code .
i dont know why ?
is there any help?
regards
  5 comentarios
Walter Roberson
Walter Roberson el 19 de En. de 2012
We would need to see the current code.
Xylo
Xylo el 11 de Mzo. de 2014
you can use double() before main function....
y=double((m-min1).*255./(max1-min1)); and as m is a 2D variable, y should be 2D variable. i.e u have to write as for i=1:m for j=1:n y(i,j)=double((m(i,j)-min1).*255./(max1-min1)); end end

Iniciar sesión para comentar.

Respuestas (3)

Image Analyst
Image Analyst el 19 de En. de 2012
Or you can simply do this:
normalizedImage = uint8(255*mat2gray(grayImage));
imshow(normalizedImage);
and not worry about the normalization because mat2gray will do it for you.
  4 comentarios
mmm ssss
mmm ssss el 19 de En. de 2012
image analyst
i think that your opininon is correct but, in many paper they use the grayscale normalization to reduce the differences in illumination.
Image Analyst
Image Analyst el 19 de En. de 2012
Then maybe their algorithm uses image normalization as just one step in the process and maybe you're not doing all the steps. Or else maybe their algorithm is not appropriate for the kind of video or images you have.

Iniciar sesión para comentar.


Syed Ahson Ali Shah
Syed Ahson Ali Shah el 8 de Feb. de 2022
Editada: Syed Ahson Ali Shah el 10 de Feb. de 2022
This is the Formula:
Normalized Image = (Original image - min of image) * ((newMax-newMin) / (ImageMax - ImageMin)) + newMin
where newMax and newMin is 255 and 0 respectively for the case when normalization is between 0 to 255.
  2 comentarios
Image Analyst
Image Analyst el 8 de Feb. de 2022
No it's not:
Originalimage = [100, 200]
Originalimage = 1×2
100 200
minofimage = min(Originalimage(:));
ImageMin = min(Originalimage(:));
ImageMax = max(Originalimage(:));
newMax = 255;
newMin = 0;
% Do the formula he gave.
NormalizedImage = (Originalimage - minofimage) * ((newMax-newMin) / (ImageMax - ImageMin)) + newMax
NormalizedImage = 1×2
255 510
% Do my formula:
normalizedImage = uint8(255*mat2gray(Originalimage))
normalizedImage = 1×2
0 255
Syed Ahson Ali Shah
Syed Ahson Ali Shah el 10 de Feb. de 2022
There was typo mistake. I corrected now.
My answer is 100% correct. I guarantee

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 18 de En. de 2012
I would suggest you use
y = uint8(255 .* ((double(m)-min1)) ./ (max1-min1));
With your existing code, the (x-min) would be okay, but multiplying by 255 would get saturation to 255 whenever the difference was not 0, and then you would get integer division of that 0 or 255 by the range interval.
  5 comentarios
Walter Roberson
Walter Roberson el 19 de En. de 2012
You should be able to extrapolate.
y = uint8(255 .* ((double(m)-double(min1))) ./ double(max1-min1));
mmm ssss
mmm ssss el 19 de En. de 2012
can you see the modified code:
clear all
>> m=imread('E:\master_matlab\HandVein_DataSet\0010hv3.bmp');
min1=min(min(m));
max1=max(max(m));
y = uint8(255 .* ((double(m)-double(min1))) ./ double(max1-min1));
>> imshow(m);
>> figure,imshow(y);title(,normalization,);
i implemented also image analyst'method:
J = filter2(fspecial('sobel'), m);
K = mat2gray(m);
figure,imshow(K);
can you give me your opinion in the resultant images (Y&K) , is they good or the image before normalization is more suitable.

Iniciar sesión para comentar.

Categorías

Más información sobre Image Processing Toolbox en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by