Подсчет крупнейших соединяющих объектов / компонентов с помощью 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-й столбец - процент каждого значения

так далее...

Другие вопросы по тегам