如何在matlab中显示多个不同颜色的二进制图像?

时间:2013-07-23 12:25:47

标签: matlab image-processing binary color-mapping satellite-image

我从卫星图像中提取了超过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等等?

非常感谢你的帮助

1 个答案:

答案 0 :(得分:2)

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

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

>> l = b1 + 2*b2 + 4*b3 + 8*b4; 
>> imshow( l ); colormap( rand(16,3) ); % random color map