Вычислите 3-D суперпиксели входа объемное изображение интенсивности

Загрузите 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);