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

 채택된 답변

Walter Roberson
Walter Roberson 2013년 11월 14일

0 개 추천

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

댓글 수: 2

Matlabques
Matlabques 2013년 11월 14일
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')

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2013년 11월 15일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Convert Image Type에 대해 자세히 알아보기

태그

질문:

2013년 11월 14일

답변:

2013년 11월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by