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

use*_*044 0 matlab image

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

谢谢

Amr*_*mro 5

假设你有三个矩阵R,G,Bint16.如果你试试

RGB = cat(3,R,G,B);
imshow(RGB)
Run Code Online (Sandbox Code Playgroud)

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

真彩色图像可以是uint8,uint16,单个或双精度.索引图像可以是逻辑,uint8,单个或双精度.灰度图像可以是逻辑的,uint8,int16,uint16,单个或双精度.二进制图像必须是逻辑类.

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

imshow( im2double(RGB) )
Run Code Online (Sandbox Code Playgroud)