2014-01-30 22 views
1

我对图像进行了二值化处理,并找到了所有连接的组件。现在我的目标是获得面积较大的连接组件的坐标。我使用了以下代码 ,但它显示错误。 。提取最大连接组件

  [l,n]=bwconncomp(binext,8); 
      for k1=1:n 
       [r,c]=find(l==k1); 
       rbar=mean(r(k1)); 
       cbar=mean(c(k1)); 
       r1(k1)=max(r(k1)); 
       c1(k1)=max(c(k1)); 
       r2(k1)=min(r(k1)); 
       c2(k1)=min(c(k1)); 
       len(k1)=r1(k1)-r2(k1); 
       wid(k1)=c1(k1)-c2(k1); 

      end 

回答

3

您需要向我们展示了错误,但我想这是由于超出范围的阵列c(k1)r(k1)的。

这些区域不一定是矩形的,所以您的计算长度和宽度的方法只是一个近似值。尝试

L = regionprops(binext,'area','PixelIdxList'); 

改为。 L(i).Area将返回你所在地区的各个区域,其中i = 1:length(L);