2

我从卫星图像中提取了超过 3 张二进制图像,它们显示了不同的类别(例如,值为 1 的像素是水,0 是非水,其他类别(如土壤等)也是如此)。我想知道有没有办法在一个图中显示这些类。我知道有 3 个类我们可以使用 'imshow' 或 'image' 但是超过 3 个类呢。我的代码就是这样的:

a=rand(4,4,4);
b1=(a(:,:,1)<=0.5);
b2=(a(:,:,2)<=0.5); 
b3=(a(:,:,3)<=0.5);
b4=(a(:,:,4)<=0.5);

现在我怎么能在一个图中用红色显示 b1,用绿色显示 b2 等等?

非常感谢您的帮助

4

1 回答 1

2

对于 4 个二进制图像,每个像素总共有 2^4 = 16 种可能的“颜色”,根据它是“水”/“土壤”或这些类别的组合(如果在您的系统中可能的话)。

因此,您可以将b1...转换b4为单个图像:

>> l = b1 + 2*b2 + 4*b3 + 8*b4; 
>> imshow( l ); colormap( rand(16,3) ); % random color map
于 2013-07-23T12:36:39.243 回答