MATLAB: Imshow not working when going from unit8 to double

doubleimage processingMATLABuint8

I converted an image from uint8 to double but when I use imshow on the matrix type double, it shows a white box. Why does that happen ?

Best Answer

Most likely because you did not scale the image when you converted the type.
  • uint8 images are treated as having values from 0 to 255.
  • floating point images are treated as having values from 0 to 1.
So if you convert to double you will need to divide by 255:
Im_double = double(Im_uint8) / 255
or just use im2double, which does this conversion:
Im_double = im2double(Im_uint8)
Related Question