imread png vs gif

3 views (last 30 days)
John on 19 Feb 2015
Commented: Image Analyst on 21 Feb 2015
It looks imread .gif and .png are different. Please help to read the image right.
[X,map] = imread('matlabicon.gif');
icon = ind2rgb(X,map);
% X is 16x16, map is 127x3
image(icon) looks good!
[X,map] = imread('open_file.png');
% X is 16x16x3, map=[]
icon = ind2rgb(X,map);
% doesn't work as map=[] and X is already 3 dimensions
image(X) doesn't look the same image at all! White pixels became black.
Added on after a while:
OK, I did this, and it looks about right. CData in uipushtool shows correctly:
icon = double(X)/double(max(X(:)));
But it doesn't look elegant and generally right.
What's the right way of reading all image format for image(X) and CData in uipushtool?

Answers (1)

Image Analyst
Image Analyst on 19 Feb 2015
Please attach your open_file.png file so we can help you. If X is already an RGB image (16x16x3) then a colormap does not even apply, and you certainly shouldn't use ind2rgb() on an image that is ALREADY RGB.
Image Analyst
Image Analyst on 21 Feb 2015
open_file.png is not in R2013b. It must have been something you added. It doesn't ship with MATLAB because I don't have it and I have that version and also the latest R2014b and it's not in that either. Please attach your open_file.png file so we can help you.

Sign in to comment.


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!