Main Content

Compute 3-D Superpixels of Input Volumetric Intensity Image

Load 3-D MRI data, remove any singleton dimensions, and convert the data into a grayscale intensity image.

loadmri; D = squeeze(D); A = ind2gray(D,map);

Calculate the 3-D superpixels. Form an output image where each pixel is set to the mean color of its corresponding superpixel region.

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

Show all xy-planes progressively with superpixel boundaries.

imSize = size(A);

Create a stack of RGB images to display the boundaries in color.

imPlusBoundaries = zeros(imSize(1),imSize(2),3,imSize(3),“uint8”);forplane = 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');endimplay(imPlusBoundaries,5)

Set the color of each pixel in output image to the mean intensity of the superpixel region. Show the mean image next to the original. If you run this code, you can useimplayto view each slice of the MRI data.

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