MATLAB: Write an image file

Image Processing Toolboxmatlab image processingrescaling image from uint16 to uint8

i have a image im of uint16 datatype
figure(1), imshow(im)
figure(2), imshow(uint8(im))
figure(3), imshow(im,[])
all the above lines displays the image in different format
How to write the image in as obtained in 3rd figure format

Best Answer

You need to scale it to 0-255 first (which is what [] does), and then cast to uint8:
image8 = uint8(rescale(im, 0, 255));
imwrite(filename, image8);
Related Question