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

标签 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 为绿色等等?

非常感谢您的帮助

最佳答案

对于 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/

相关文章:

matlab - 在图中按顺序标记点

matlab - 在 Octave 中读取 CSV 文件时出现问题

c - 十进制到二进制转换器 : add spaces to output

python2.7 将二进制有符号 double 转换为 ASCII 的难度

C++ fstream - 无法使用二进制格式从文件中读取

MATLAB:从 wav 文件中去除高频噪声

python - Imagemagick 或类似的脚本图像增强

linux - 如何创建 PDF 的 JPG 预览(使用 Linux 命令行)?

OpenCV - 对齐图像堆栈 - 不同的相机

python struct.pack 和 write 与 matlab fwrite