labelmatrix

Создайте матрицу метки из bwconncomp структура

Синтаксис

Описание

Матрица метки помечает объекты или соединенные компоненты в бинарном изображении с уникальными целочисленными значениями. Используйте матрицу метки, чтобы визуализировать отдельные объекты или соединенные компоненты.

пример

L = labelmatrix(CC) создает матрицу метки, L, от связанной структуры компонентов CC возвращенный bwconncomp.

Примеры

свернуть все

Считайте бинарное изображение в рабочую область. Отобразите изображение.

BW = imread('text.png');
imshow(BW)

Figure contains an axes. The axes contains an object of type image.

Вычислите связанные компоненты с помощью bwconncomp.

CC = bwconncomp(BW);

Создайте матрицу метки использование labelmatrix. Каждая метка имеет уникальный числовой индекс.

L = labelmatrix(CC);

Найдите максимальное значение матрицы метки. Это значение указывает на количество обнаруженных объектов, в этом случае, 88.

numObjects = max(L(:))
numObjects = uint8
    88

Отобразите матрицу метки как изображение. Поскольку максимальное значение метки намного меньше, чем максимальное значение uint8 тип данных, увеличьте область значений отображения изображения, чтобы сделать метки более отличными.

imshow(L,[])

Figure contains an axes. The axes contains an object of type image.

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

imshow(label2rgb(L,'jet','k','shuffle'));

Figure contains an axes. The axes contains an object of type image.

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

свернуть все

Связанные компоненты в виде структуры с четырьмя полями.

Поле Описание
ConnectivityВозможность соединения связанных компонентов (объекты)
ImageSizeРазмер бинарного изображения
NumObjectsКоличество связанных компонентов (объекты) в бинарном изображении.
PixelIdxList1 NumObjects массив ячеек, где k-й элемент в массиве ячеек является вектором, содержащим линейные индексы пикселей в k-ом объекте.

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

свернуть все

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

Размер L определяется значением CC.ImageSize поле . Класс L зависит от количества непрерывных областей. labelmatrix использует самый маленький класс, который может представлять количество объектов, CC.NumObjects, как показано в таблице.

КлассОбласть значений
'uint8'

CC.NumObjects 255

'uint16'

256 CC.NumObjects 65535

'uint32'

65536 CC.NumObjects 2321

'double'

CC.NumObjects 232

Типы данных: double | uint8 | uint16 | uint32

Представленный в R2009a