superpixels

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

Описание

пример

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

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

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

Примеры

свернуть все

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

A = imread('kobi.png');

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

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

Отобразите суперграницы пикселей, наложенные на оригинальном изображении.

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

Выберите цвет каждого пикселя в выходном изображении к среднему цвету 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)

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

свернуть все

Введите изображение, заданное как действительная, неразреженная матрица. Для int16 данные, A должно быть 2D полутоновое изображение. Для всех других типов данных, A может быть 2D полутоновое или 2D изображение RGB. Когда параметр 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

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

свернуть все

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

Количество вычисленных суперпикселей, возвратилось в виде числа типа double.

Ссылки

[1] Radhakrishna Achanta, Appu Shaji, Кевин Смит, Aurelien Lucchi, Паскаль Фюа, и Сабин Сюсстрюнк, Суперпиксели SLIC По сравнению с Современными Суперпиксельными Методами. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту, Объему 34, Выпуск 11, стр 2274-2282, май 2012

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

Введенный в R2016a

Для просмотра документации необходимо авторизоваться на сайте