使用MATLAB将任何图像类型转换为RGB

时间:2014-01-08 09:13:40

标签: matlab

我有一张图片,我使用此代码

[path,user_cance]=imgetfile();
im=imread(path);

现在我不知道这张图片是RGB还是索引还是......

如何将im转换为RGB?

2 个答案:

答案 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