superpixels

2-D сверхэгментацию изображений

Описание

пример

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

The 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

Алгоритм для вычисления суперпикселей, заданный как одно из следующих значений. The 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] Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua и Sabine Susstrunk, суперпиксели SLIC по сравнению с современными суперпиксельными методами. Транзакции IEEE по анализу шаблонов и машинной разведке, том 34, выпуск 11, стр. 2274-2282, май 2012 г.

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

..
Введенный в R2016a