bwlabel

Пометьте связанные компоненты в 2-D бинарном изображении

Описание

пример

L = bwlabel(BW) возвращает матрицу меток L который содержит метки для 8-связанных объектов, найденных в BW.

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

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

Примеры

свернуть все

Создайте небольшое бинарное изображение.

BW = logical ([1     1     1     0     0     0     0     0
               1     1     1     0     1     1     0     0
               1     1     1     0     1     1     0     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     1     1     0
               1     1     1     0     0     0     0     0]);

Создайте матрицу меток с помощью 4-связанных объектов.

L = bwlabel(BW,4)
L = 8×8

     1     1     1     0     0     0     0     0
     1     1     1     0     2     2     0     0
     1     1     1     0     2     2     0     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     3     3     0
     1     1     1     0     0     0     0     0

Используйте find команда для получения координат строка и столбец объекта с меткой «2».

[r, c] = find(L==2);
rc = [r c]
rc = 4×2

     2     5
     3     5
     2     6
     3     6

Входные параметры

свернуть все

Бинарное изображение, заданное как 2-D числовая матрица или 2-D логическая матрица. Для числового входа любые ненулевые пиксели рассматриваются как 1 (true).

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

Пиксельная связность, заданная в качестве одного из следующих значений.

Значение

Значение

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

4-соединенный

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

8-соединенный

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

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

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

свернуть все

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

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

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

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

Совет

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

     Входная размерностьВыходИспользование памятиВозможность соединения
    bwlabel2-DМатрица меток двойной точностиВысоко4 или 8
    bwlabelnН-ДМатрица меток двойной точностиВысокоЛюбой
    bwconncompН-ДCC- structНизкоЛюбой
  • Можно использовать MATLAB® find функция в сочетании с bwlabel чтобы вернуть векторы индексов для пикселей, которые составляют определенный объект. Для примера, чтобы вернуть координаты для пикселей в объекте 2, введите следующее:.

    [r,c] = find(bwlabel(BW)==2)

    Можно отобразить выходную матрицу как псевдоколорное индексированное изображение. Каждый объект появляется в другом цвете, поэтому объекты легче различить, чем в оригинальном изображении. Для получения дополнительной информации см. label2rgb.

  • Чтобы извлечь функции из бинарного изображения, используя regionprops с связностью по умолчанию, просто пройдите BW непосредственно в regionprops использование команды regionprops(BW).

  • bwlabel функция может использовать преимущества аппаратной оптимизации для типов данных logical, uint8, и single чтобы запустить быстрее. Аппаратная оптимизация требует marker и mask быть 2-D изображениями и conn быть либо 4, либо 8.

Алгоритмы

bwlabel использует общую процедуру, описанную в ссылке [1], стр. 40-48:

  1. Run-length закодируйте вход изображение.

  2. Просканирование запусков, присвоение предварительных меток и запись эквивалентов меток в локальную таблицу эквивалентности.

  3. Разрешите классы эквивалентности.

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

Ссылки

[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume I, Addison-Wesley, 1992, pp. 28-48.

Расширенные возможности

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