在MATLAB中使用bwlabel之后,我可以更改连接组件的标签吗?

时间:2014-10-31 09:24:34

标签: matlab image-processing matlab-figure

黑色物体中有一些白色部分。

我需要用相邻的黑色掩盖物体中的所有白色部分。

bwlabel功能将黑色部分标记为' 2'白色部分为' 1'。

我可以以某种方式更改所需对象的标签,并用黑色覆盖白色部分。

我使用以下代码单独隔离了对象:

 a=imread('3.jpg');
 figure(),imshow(a),title('Original image');

 b=im2bw(a, graythresh(a));
 figure(),imshow(b),title('Grayscale image');

 [c,num]=bwlabel(b);
 figure(),imshow(c),title('labelled image');

 for i=1:1:num
  figure(),imshow(c==i),title('OBJECT');
 end

我还能做些什么? 或者还有其他方法可以达到同样的效果吗?

1 个答案:

答案 0 :(得分:0)

你能做到吗

找到白色区域的索引

ind_white = find(c==1);

用零替换白色区域

b(ind_white) = 0;

或者您可以将白色物体的标签更改为黑色

的标签
c(ind) = 2;