bwlabeln

Маркируйте соединенные компоненты в двухуровневом изображении

Синтаксис

L = bwlabeln(BW)
L = bwlabeln(BW,conn)
[L,n] = 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 | логический

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

Значение

Значение

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

4

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

8

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

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

6

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

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

18

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

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

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

26

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

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

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

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

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

Возможность соединения может также быть задана более общим способом к любой размерности путем определения 3-by-3-by-... Матрица-by-3 0 s и 1 s. 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-DStruct CCНизкоЛюбой
  • Чтобы извлечь функции из двухуровневого изображения с помощью 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