I am normalizing an image and then writing to file so that i can use the normalized image but when i write into file i need to convert to uint8 otherwise the file is all blank. However when i do that the value of outimage4 and x is not same and not sure how to solve the problem. Can anyone help.
I4= (imread('x2.png')); I4= double(I4); I4 = I4 - min(min(I4)); outputImage4 =I4 ./ sqrt(sum(sum(I4.^2))); figure(1) imagesc(outputImage4); colormap('gray');
test1= ((outputImage4)./(max(max(outputImage4)))).*256; x= uint8(test1); imwrite(x,'norm1.png', 'png');

 Respuesta aceptada

Walter Roberson
Walter Roberson el 14 de Nov. de 2013

0 votos

imagesc() does (data-min)/(max-min) but your manual conversion does data/max

2 comentarios

Matlabques
Matlabques el 14 de Nov. de 2013
So, is it possible to write to file as can be seen in figure(1) without converting it to unit8 like i did
Walter Roberson
Walter Roberson el 15 de Nov. de 2013
maxd = double(max(I4(:)));
mind = double(min(I4(:)));
x = uint8((double(I4) - mind)./(maxd-mind) .* 256);
imwrite(x,'norm1.png', 'png')

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 15 de Nov. de 2013

0 votos

Simply save the data (image array) as a mat file. It will maintain the precision.

Categorías

Más información sobre Convert Image Type en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 14 de Nov. de 2013

Respondida:

el 15 de Nov. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by