- Because floating-point images are assumed to contain values between 0 and 1 the double image displays those colors as black and white.
- But for the uint8 image the values are assumed to be from 0 to 255, so those two colors are shown as black and very-dark-gray (indeed, the symbol is just visible in your screenshot).
Image display with uint8 and double
224 views (last 30 days)
Can someone explain why the following image, 'yinyang.png', is displayed differently when I use uint8 and double in the imshow function?
I = imread('yinyang.png');
figure(1), imshow(I); title('image displayed with uint8')
figure(2), imshow(double(I)); title('image displayed with double')
The original image displayed in Windows Photo Viewer and the two figure(1) and figure(2) are attached.
Stephen23 on 20 Mar 2018
Edited: Stephen23 on 11 Sep 2019
It seems that you have a "binary" image with values 0 and 1, which is stored as uint8.
You can probably use imshow's optional input argument to specify the (non-default) range:
Addendum: the PNG standard supports 1-bit (i.e. binary) images, which MATLAB imports as logical images. Logical images are displayed as black-and-white.