- 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
66 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mohsin Shah
el 20 de Mzo. de 2018
Comentada: Anindya Banerjee
el 17 de Dic. de 2019
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.
0 comentarios
Respuesta aceptada
Stephen23
el 20 de Mzo. de 2018
Editada: Stephen23
el 11 de Sept. de 2019
It seems that you have a "binary" image with values 0 and 1, which is stored as uint8.
imshow(double(I),[0,255])
imshow(I,[0,1])
See also:
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.
4 comentarios
Anindya Banerjee
el 17 de Dic. de 2019
@ Stephen Cobeldick but inthe case of double, why the image turns out to be inverse? i.e white part of the image becomes black and black part becomes white?
Más respuestas (0)
Ver también
Categorías
Más información sobre Display Image en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!