exponenta event banner

суперпиксели

2-D суперпиксельная избыточная сегментация изображений

Описание

пример

[L,NumLabels] = superpixels(A,N) вычисляет суперпиксели 2-х оттенков серого или изображения RGB A. N указывает количество суперпикселей, которые требуется создать. Функция возвращает L, матрица меток типа double, и NumLabels, фактическое количество вычисленных суперпикселей.

superpixels функция использует простой алгоритм линейной итеративной кластеризации (SLIC) [1]. Этот алгоритм группирует пикселы в области с аналогичными значениями. Использование этих областей в операциях обработки изображения, таких как сегментация, может уменьшить сложность этих операций.

[L,NumLabels] = superpixels(A,N,Name,Value) вычисляет суперпиксели изображения A использование аргументов пары имя-значение, используемых для управления аспектами сегментации.

Примеры

свернуть все

Чтение изображения в рабочую область.

A = imread('kobi.png');

Вычислите суперпиксели изображения.

[L,N] = superpixels(A,500);

Отображение границ суперпикселя, наложенных на исходное изображение.

figure
BW = boundarymask(L);
imshow(imoverlay(A,BW,'cyan'),'InitialMagnification',67)

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

Установите для каждого пикселя в выходном изображении средний RGB-цвет области суперпикселя.

outputImage = zeros(size(A),'like',A);
idx = label2idx(L);
numRows = size(A,1);
numCols = size(A,2);
for labelVal = 1:N
    redIdx = idx{labelVal};
    greenIdx = idx{labelVal}+numRows*numCols;
    blueIdx = idx{labelVal}+2*numRows*numCols;
    outputImage(redIdx) = mean(A(redIdx));
    outputImage(greenIdx) = mean(A(greenIdx));
    outputImage(blueIdx) = mean(A(blueIdx));
end    

figure
imshow(outputImage,'InitialMagnification',67)

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

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

свернуть все

Изображение в сегмент, указанное как 2-D изображение в оттенках серого или 2-D изображение в цвете. Для int16 данные, A должно быть изображение в градациях серого. Когда параметр isInputLab является true, входное изображение должно иметь тип данных single или double.

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

Требуемое количество суперпикселей, указанное как положительное целое число.

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: B = superpixels(A,100,'NumIterations', 20);

Форма суперпикселей, заданная как числовой скаляр. Параметр компактности алгоритма SLIC управляет формой суперпикселей. Более высокое значение делает суперпиксели более регулярной формы, то есть квадратом. Меньшее значение заставляет суперпиксели лучше прилипать к границам, делая их неправильной формы. Допустимый диапазон: (0 Inf). Типичные значения компактности находятся в диапазоне [1,20].

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

Входные данные изображения находятся в цветовом пространстве L * a * b *, указанном какtrue или false.

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

Алгоритм, используемый для вычисления суперпикселей, указанный как одно из следующих значений. superpixels функция использует два варианта алгоритма простой линейной итеративной кластеризации (SLIC).

Стоимость

Значение

'slic0'

superpixels использует алгоритм SLIC0 для уточнения 'Compactness' адаптивно после первой итерации. Это значение по умолчанию.

'slic'

'Compactness' является постоянной во время кластеризации.

Типы данных: char | string

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

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

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

свернуть все

Матрица меток, возвращаемая как массив положительных целых чисел. Стоимость 1 указывает первый регион, 2 вторая область и так далее для каждой области суперпикселя в изображении.

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

Число вычисленных суперпикселей, возвращаемых как положительное целое число.

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

Ссылки

[1] Радхакришна Ачанта, Аппу Шаджи, Кевин Смит, Аурельен Лукки, Паскаль Фуа и Сабине Сусструнк, SLIC Superpixels по сравнению с современными методами суперпикселя. Транзакции IEEE по анализу шаблонов и машинному интеллекту, том 34, выпуск 11, стр. 2274-2282, май 2012 г.

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

..
Представлен в R2016a