我有一张图片,我使用此代码
[path,user_cance]=imgetfile();
im=imread(path);
现在我不知道这张图片是RGB还是索引还是......
如何将im转换为RGB?
答案 0 :(得分:2)
如果是索引图像,您可以轻松使用ind2rgb函数:
阅读图片:
[X,map] = imread('imagefile.tif');
验证colormap,map是否为空,并将X中的数据转换为RGB。
if ~isempty(map)
Im = ind2rgb(X,map);
end
最后,您可以查看 X 的大小和类别。
whos Im
ind2rgb 将矩阵 X 和相应的 colormap 地图转换为 RGB (truecolor)格式。 X 可以是uint8,uint16,single或double类。 RGB 是一个m-by-by-by-3类double。
here您可以找到可以使用MATLAB读取的图像格式。
答案 1 :(得分:1)
根据Mathworks文档(http://www.mathworks.fr/fr/help/matlab/ref/imread.html),imread
可以从其内容推断出数据类型。
您可以测试色彩图是否存在或为空:
[im, map] = imread(path_to_image);
if(isempty(map)) % image is RGB or grayscale
if(size(im, 3) == 1) % image is grayscale
im = cat(3, img, img, img);
end
else % image is indexed
im = ind2rgb(im, map);
end
% now 'im' is a RGB-image