1 I= imread('2.jpg');
2 figure(1), imshow(I)
3 R=I(:,:,1);
4 G=I(:,:,2);
5 B=I(:,:,3);
6 [m,n]=size(r);
7 mask=zeros(m,n);
8 for i = 1:m
9 for j = 1:n
10 if r(i,j)<70 && g(i,j)<70 && b(i,j)<70
11 mask(i,j)=1;
12 end
13 end
14 end
15 figure(2),imshow(mask)
16 [L,num]=bwlabel(mask,n);%n取8或4表示四连通或八连通区域,num表示连通域数目,L为输出图像矩阵,其元素值为整数,背景被标记为0,第一个连通区域被标记为1,第二个连通区域被标记为2,依此类推.所以你不明白的1,2,3即为第1,2,3个连通区域的标记
17 x=zero(1,sum);
18 for ii=1:num
19 x(ii)=sum(sum(L==ii));
20 end
21 [m,ind]=max(x);
22 out=(L==ind);%L=ind的值为1,其它为0
23 figure(3),imshow(out)