superpixels

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

Описание

пример

[L,NumLabels] = superpixels(A,N) вычисляет суперпиксели 2D шкалы полутонов, или RGB отображают AN задает количество суперпикселей, которые вы хотите создать. Функция возвращает 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.

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

свернуть все

Отобразите, чтобы сегментироваться в виде 2D полутонового изображения или 2D изображения истинного цвета. Для 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] Radhakrishna Achanta, Appu Shaji, Кевин Смит, Aurelien Lucchi, Паскаль Фюа, и Сабин Сюсстрюнк, Суперпиксели SLIC По сравнению с Современными Суперпиксельными Методами. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту, Объему 34, Выпуск 11, стр 2274-2282, май 2012

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

Введенный в R2016a