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 для 2D изображений и 26 для 3-D изображений.

Значение

Значение

Двумерные возможности соединения

4

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

8

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

3D возможности соединения

6

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

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

18

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

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

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

26

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

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

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

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

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

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

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

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

свернуть все

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

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

Матрица метки непрерывных областей, возвращенных как 2D массив неотрицательных целых чисел класса double. k th область включает все элементы в L это имеет значение k. Количество объектов и отверстий представлено L равно max(L(:)). Элементы с нулевым знаком L составьте фон.

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

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

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

Советы

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

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

  • Вычислить матрицу метки, имеющую более эффективный памятью тип данных (например, uint8 по сравнению с double), используйте labelmatrix функция на выходе bwconncomp:

    C = bwconncomp(BW);
    L = labelmatrix(CC);
    
    CC = bwconncomp(BW,n);
    S = regionprops(CC);

Алгоритмы

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

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

  2. Разрешите классы эквивалентности с помощью алгоритма находки объединение [1].

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

Ссылки

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

Смотрите также

| | | |

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