Подсчет крупнейших соединяющих объектов / компонентов с помощью bwlabel
Предположим, у меня есть двоичное изображение BW
и я использую bwlabel
найти подключенную область 1. Я хочу найти наибольшую группу этого результата (которая не равна 0), а также место, где эта группа расположена на рисунке. Как это сделать?
1 ответ
Решение
Есть несколько способов сделать это, например, гистограмма содержимого ненулевых элементов:
L=bwlabel(I);
[a val]=hist(L(:),1:max(L(:)))
val(a==max(a))
даст значение, которое наиболее часто встречается
Другой способ заключается в использовании таблицы:
a=tabulate(L(:))
a(a(:,2)==max(a(2:end,2)),1)
tabulate создает таблицу частот данных в векторе L(:). Информация организована следующим образом:
1-й столбец - уникальные значения L
2-й столбец - количество экземпляров каждого значения
3-й столбец - процент каждого значения
так далее...