exponenta event banner

bwlabeln

Пометить подключенные компоненты в двоичном изображении

Описание

пример

L = bwlabeln(BW) возвращает матрицу меток, L, содержащие метки для подключенных компонентов в BW.

L = bwlabeln(BW,conn) возвращает матрицу меток, где conn определяет возможность подключения.

[L,n] = bwlabeln(___) также возвращает n, количество подключенных объектов, найденных в BW.

Примеры

свернуть все

Создание простого образца 3-D двоичного изображения.

BW = cat(3, [1 1 0; 0 0 0; 1 0 0],...
            [0 1 0; 0 0 0; 0 1 0],...
            [0 1 1; 0 0 0; 0 0 1])
BW = 
BW(:,:,1) =

     1     1     0
     0     0     0
     1     0     0


BW(:,:,2) =

     0     1     0
     0     0     0
     0     1     0


BW(:,:,3) =

     0     1     1
     0     0     0
     0     0     1

Пометка связанных компонентов в изображении.

bwlabeln(BW)
ans = 
ans(:,:,1) =

     1     1     0
     0     0     0
     2     0     0


ans(:,:,2) =

     0     1     0
     0     0     0
     0     2     0


ans(:,:,3) =

     0     1     1
     0     0     0
     0     0     2

Входные аргументы

свернуть все

Двоичный образ, заданный как числовой или логический массив любого измерения. Для числового ввода любые ненулевые пикселы считаются on.

Пример: BW = imread('text.png');

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Пиксельная связность, указанная как одно из значений в этой таблице. Подключение по умолчанию: 8 для 2-D изображений, и 26 для 3-D изображений.

Стоимость

Значение

Двумерные связи

4-подключенные

Пикселы соединяются, если их края соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены вдоль горизонтального или вертикального направления.

8-подключенных

Пикселы соединяются, если их края или углы соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены вдоль горизонтального, вертикального или диагонального направления.

Трехмерные связи

6-подключенных

Пиксели соединяются, если их лица соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены в:

  • Одно из этих направлений: внутрь, наружу, влево, вправо, вверх и вниз

18-подключенных

Пикселы соединяются, если их грани или края соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены в

  • Одно из этих направлений: внутрь, наружу, влево, вправо, вверх и вниз

  • Комбинация двух направлений, например, вправо вниз или вверх

26-подключенных

Пикселы соединяются, если их грани, края или углы соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены в

  • Одно из этих направлений: внутрь, наружу, влево, вправо, вверх и вниз

  • Комбинация двух направлений, например, вправо вниз или вверх

  • Комбинация трех направлений, таких как «справа вверх» или «слева вниз»

Для более высоких размеров bwlabeln использует значение по умолчанию conndef(ndims(BW),'maximal').

Связность также можно определить более общим образом для любого измерения, указав 3 на 3 -... -по-3 матрицы 0s и 1с. 1-значимые элементы определяют расположения окрестностей относительно центрального элемента conn. Обратите внимание, что conn должен быть симметричным относительно его центрального элемента. Дополнительные сведения см. в разделе Определение пользовательских подключений.

Типы данных: double | logical

Выходные аргументы

свернуть все

Матрица меток, возвращаемая как массив неотрицательных целых чисел с тем же размером, что и BW. Маркированные пикселы 0 являются фоном. Маркированные пикселы 1 составить один объект; пикселы, помеченные 2 составляют второй объект; и так далее.

Типы данных: double

Количество подключенных объектов в BW, возвращается как неотрицательное целое число.

Типы данных: double

Совет

  • Функции bwlabel, bwlabeln, и bwconncomp все вычислительные подключенные компоненты для двоичных изображений. bwconncomp заменяет использование bwlabel и bwlabeln. Он использует значительно меньше памяти и иногда быстрее других функций.

    ФункцияВходное измерениеФорма выводаИспользование памятиВозможность соединения
    bwlabel2-DМатрица меток с двойной точностьюВысоко4 или 8
    bwlabelnN-DМатрица меток с двойной точностьюВысокоЛюбой
    bwconncompN-DCC структураНизкоЛюбой
  • Извлечение элементов из двоичного изображения с помощью regionprops с подключением по умолчанию, просто пройти BW непосредственно в regionprops с помощью команды regionprops(BW).

Алгоритмы

bwlabeln использует следующую общую процедуру:

  1. Сканирование всех пикселей изображения, назначение предварительных меток ненулевым пикселям и запись эквивалентов меток в таблицу union-find.

  2. Разрешите классы эквивалентности с помощью алгоритма union-find [1].

  3. Повторно маркировать пикселы на основе разрешенных классов эквивалентности.

Ссылки

[1] Седжвик, Роберт, Алгоритмы в C, 3-е изд., Аддисон-Уэсли, 1998, стр. 11-20.

Представлен до R2006a