您可以为此目的使用 RGB 颜色空间。由于您没有提供任何示例数据,我将使用 MATLAB 中的 bwlabel 示例进行说明。
BW = logical([1 1 1 0 0 0 0 0
1 1 1 0 1 1 0 0
1 1 1 0 1 1 0 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 1 1 0
1 1 1 0 0 0 0 0]);
L = bwlabel(BW,4); %Result
imshow(L);
现在 L 将是:
1 1 1 0 0 0 0 0
1 1 1 0 2 2 0 0
1 1 1 0 2 2 0 0
1 1 1 0 0 0 3 0
1 1 1 0 0 0 3 0
1 1 1 0 0 0 3 0
1 1 1 0 0 3 3 0
1 1 1 0 0 0 0 0
假设我想分别对组件 1,2 和 3 使用红色、绿色和蓝色:
[m, n] = size(L);
result_image = zeros(m, n, 3);
result_image(:,:,1) = (L==1);
result_image(:,:,2) = (L==2);
result_image(:,:,3) = (L==3);
imshow(result_image);
如果你有另一个连接的组件 4(甚至更多),你可以使用类似的东西:
result_image(:,:,1) = result_image(:,:,1) + (L==4)*1;
result_image(:,:,2) = result_image(:,:,2) + (L==4)*0.5;
result_image(:,:,3) = result_image(:,:,3) + (L==4)*0;
对于不同的颜色,只需使用相乘的值(此处为 1、0.5 和 0)。