使用MATLAB将三个灰度图像组合成RGB

时间:2011-09-28 22:11:01

标签: image matlab

我有三个灰度图像,其中每个图像代表来自16位分辨率的RGB图像的单个通道。我想将它们转换为单个RGB图像。我尝试了catind2rgb,但它无效。我们应该在使用ind2rgb之前索引我们的灰度图像吗?还有其他办法吗?

由于

1 个答案:

答案 0 :(得分:5)

假设您有三个RGB类型int16的矩阵。如果你试试

RGB = cat(3,R,G,B);
imshow(RGB)

IMSHOW会抱怨:RGB images must be uint8, uint16, single, or double.。事实上,如果您查看文档:

  

真彩色图像可以是uint8,uint16,single或double。索引   image可以是logical,uint8,single或double。灰度图像可以   是逻辑的,uint8,int16,uint16,单一或双。二进制图像   必须属于阶级逻辑。

因此,如果您连接三个int16灰度图像,并且想要使用IMSHOW,则必须将生成的真彩色图像转换为它支持的颜色:

imshow( im2double(RGB) )