我有三个灰度图像,其中每个图像代表来自16位分辨率的RGB图像的单个通道。我想将它们转换为单个RGB图像。我尝试了cat
和ind2rgb
,但它无效。我们应该在使用ind2rgb
之前索引我们的灰度图像吗?还有其他办法吗?
由于
答案 0 :(得分:5)
假设您有三个R
,G
,B
类型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) )