exponenta event banner

superpixels3

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

Описание

пример

[L,NumLabels] = superpixels3(A,N) вычисляет 3D суперпиксели 3D изображения 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

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

свернуть все

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

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

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

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

Алгоритмы

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

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

dintensity = (li−lj) 2dspatial = (xi−xj) 2 + (yi−yj) 2 + (zi−zj) 2D = (dintensitym) 2 + (dspatialS) 2

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

Представлен в R2016b