exponenta event banner

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-by-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 ≤232−1

'double'

CC.NumObjects ≥232

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

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