superpixels3

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

Описание

пример

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

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

Примеры

свернуть все

Загрузите 3-D данные MRI, удалите любые одноэлементные размерности и преобразуйте данные в полутоновое изображение интенсивности.

load mri;
D = squeeze(D);
A = ind2gray(D,map);

Вычислите 3-D суперпиксели. Сформируйте выходное изображение, где каждый пиксель установлен в средний цвет своей соответствующей суперпиксельной области.

[L,N] = superpixels3(A,34);

Показывайте все xy-плоскости прогрессивно с суперпиксельными контурами.

imSize = size(A);

Создайте стек изображений RGB, чтобы отобразить контуры в цвете.

imPlusBoundaries = zeros(imSize(1),imSize(2),3,imSize(3),'uint8');
for plane = 1:imSize(3)
  BW = boundarymask(L(:, :, plane));
  % Create an RGB representation of this plane with boundary shown
  % in cyan.
  imPlusBoundaries(:, :, :, plane) = imoverlay(A(:, :, plane), BW, 'cyan');
end

implay(imPlusBoundaries,5)

Выберите цвет каждого пикселя в выходном изображении к средней интенсивности суперпиксельной области. Покажите среднее изображение рядом с оригиналом. Если при запуске этот код, можно использовать implay просмотреть каждый срез данных MRI.

pixelIdxList = label2idx(L);
meanA = zeros(size(A),'like',D);
for superpixel = 1:N
     memberPixelIdx = pixelIdxList{superpixel};
     meanA(memberPixelIdx) = mean(A(memberPixelIdx));
end
implay([A meanA],5);

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

свернуть все

Объем, чтобы сегментироваться в виде 3-D числового массива.

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

Желаемое количество суперпикселей в виде положительного целого числа.

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

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

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

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

Форма суперпикселей в виде числового скаляра. Параметр компактности алгоритма SLIC управляет формой суперпикселей. Более высокое значение делает суперпиксели более регулярно формируемыми, то есть, квадрат. Нижнее значение заставляет суперпиксели придерживаться контуров лучше, делая их неправильной формы. Можно задать любое значение в области значений [0 Inf) но типичные значения находятся в области значений [0.01,0.1].

Примечание

Если вы задаете 'slic0' метод, вы обычно не должны настраивать 'Compactness' параметр. С 'slic0' метод, superpixel3 адаптивно совершенствовал 'Compactness' параметр автоматически, таким образом избавляя от необходимости определить хорошее значение.

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

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

Значение

Значение

'slic0'

superpixels3 использует алгоритм SLIC0, чтобы совершенствовать 'Compactness' адаптивно после первой итерации. Это значение по умолчанию.

'slic'

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

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

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

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

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

свернуть все

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

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

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

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

Алгоритмы

Алгоритм используется в superpixels3 модифицированная версия алгоритма Простой линейной итеративной кластеризации (SLIC), используемого superpixels. На высоком уровне это создает кластерные центры и затем итеративно чередуется между присвоением пикселей к самому близкому кластерному центру и обновлением местоположений кластерных центров. superpixels3 использует метрику расстояния, чтобы определить самый близкий кластерный центр каждого пикселя. Эта метрика расстояния комбинирует расстояние интенсивности и пространственное расстояние.

Compactness функции аргумент прибывает из математической формы метрики расстояния. Параметр компактности алгоритма является скалярным значением, которое управляет формой суперпикселей. Расстояние между i на два пикселя и j, где m является значением компактности:

dintensity=(lilj)2dspatial=(xixj)2+(yiyj)2+(zizj)2D=(dintensitym)2+(dspatialS)2

Компактность имеет то же значение как в 2D superpixels функция: Это определяет относительную важность расстояния интенсивности и пространственного расстояния в полной метрике расстояния. Нижнее значение заставляет суперпиксели придерживаться контуров лучше, делая их неправильной формы. Более высокое значение делает суперпиксели более регулярно формируемыми. Допустимой областью значений для компактности является (0 Inf), как в 2D функции. Типичной областью значений, как находили, посредством экспериментирования был [0.01 0.1]. Динамический диапазон входных изображений нормирован в рамках алгоритма, чтобы быть от 0 до 1. Это включает сопоставимое значение значений компактности через изображения.

Смотрите также

| | | |

Введенный в R2017b