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)