imread png vs gif

2 次查看(过去 30 天)
John
John 2015-2-19
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);
image(icon) looks good!
However:
[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:
X(X==0)=max(X(:));
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?

回答(1 个)

Image Analyst
Image Analyst 2015-2-19
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.
  2 个评论
John
John 2015-2-19
All files are in: C:\Program Files\MATLAB\"R2013b"\toolbox\matlab\icons
Image Analyst
Image Analyst 2015-2-21
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Images 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by