MATLAB: Help with gray scale images

image processingimread

I have a gray scale image which I after thresholding and histogram equalization write using imwrite. But when I read back this stored image, the gray scale values change. 255 changes to 63 and so on. The data type I am using in imread is uint8 type and if I use double, the entire image is white except the pixels having 0 value. I am unable to store the intermediate images. Please can anyone tell me why this is so?
Thanks in advance

Best Answer

If you could show us the code with a sample image (e.g. 'cameraman.tif') it would help us.
More than likely when you're viewing it as double, the view range is set from [0 1] so everything 1 or greater (all values in uint8) appear white. Use the second input argument to imshow to change this, e.g:
Igraydouble = double(imread('cameraman.tif'));
figure;
subplot(121)
imshow(Igraydouble)
subplot(122)
imshow(Igraydouble,[])