Image 用MATLAB将三幅灰度图像合成RGB

Image 用MATLAB将三幅灰度图像合成RGB,image,matlab,Image,Matlab,我有三个灰度图像,其中每个图像代表16位分辨率RGB图像的一个通道。我想把它们转换成一张RGB图像。我尝试了cat和ind2rgb,但它不起作用。我们应该在使用ind2rgb之前为灰度图像编制索引吗?还有别的办法吗 谢谢假设您有三个R,G,B类型的int16。如果你尝试 RGB = cat(3,R,G,B); imshow(RGB) 将投诉:RGB图像必须是uint8、uint16、单或双。。事实上,如果您查看文档: truecolor图像可以是uint8、uint16、单色或双色。索引 映像

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


谢谢假设您有三个
R
G
B
类型的
int16
。如果你尝试

RGB = cat(3,R,G,B);
imshow(RGB)
将投诉:
RGB图像必须是uint8、uint16、单或双。
。事实上,如果您查看文档:

truecolor图像可以是uint8、uint16、单色或双色。索引 映像可以是逻辑映像、uint8映像、单映像或双映像。灰度图像可以 逻辑、uint8、int16、uint16、单或双。二值图像 必须是逻辑类

因此,如果您将三个
int16
灰度图像连接起来,并希望使用IMSHOW,则必须将生成的truecolor图像转换为其支持的内容:

imshow( im2double(RGB) )

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

RGB = cat(3,R,G,B);
imshow(RGB)
将投诉:
RGB图像必须是uint8、uint16、单或双。
。事实上,如果您查看文档:

truecolor图像可以是uint8、uint16、单色或双色。索引 映像可以是逻辑映像、uint8映像、单映像或双映像。灰度图像可以 逻辑、uint8、int16、uint16、单或双。二值图像 必须是逻辑类

因此,如果您将三个
int16
灰度图像连接起来,并希望使用IMSHOW,则必须将生成的truecolor图像转换为其支持的内容:

imshow( im2double(RGB) )

你能发布你尝试过的代码吗