我有超过 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 个二值图像,每个像素总共有 2^4 = 16 种可能的“颜色”,根据它是“水”/“土壤”或这些类别的组合(如果在您的系统中可能的话)。
因此,您可以将 b1
...b4
转换为单个图像:
>> l = b1 + 2*b2 + 4*b3 + 8*b4;
>> imshow( l ); colormap( rand(16,3) ); % random color map
关于matlab - 如何在matlab中显示多个不同颜色的二值图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810141/