用MATLAB将三幅灰度图像合并为RGB



我有三个灰度图像,其中每个图像代表来自16位分辨率的RGB图像的单个通道。我想把它们转换成一个单一的RGB图像。我试过catind2rgb,但它不起作用。在使用ind2rgb之前,我们应该索引我们的灰度图像吗?还有别的办法吗?

谢谢

假设您有三个类型为int16的矩阵R, G, B。如果你尝试

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

IMSHOW将报错:RGB images must be uint8, uint16, single, or double.。事实上,如果你查看文档:

真彩色图像可以是uint8、uint16、单、双类型。一个索引Image可以是逻辑类型、uint8类型、单类型或双类型。灰度图像可以是逻辑的,uint8, int16, uint16,单,或双。二值图像必须是逻辑类

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

imshow( im2double(RGB) )

最新更新