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