superpixels3

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

Описание

пример

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

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

Примеры

свернуть все

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

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 чтобы просмотреть каждый срез данных МРТ.

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

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

Введенный в R2016b