write normalized image file

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');

 Risposta accettata

Walter Roberson
Walter Roberson il 14 Nov 2013

0 voti

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

2 Commenti

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

Accedi per commentare.

Più risposte (1)

Image Analyst
Image Analyst il 15 Nov 2013

0 voti

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

Categorie

Scopri di più su Convert Image Type in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by