2014-01-30 6 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);

Смежные вопросы