Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

入力ボリューム強度イメージの 3 次元スーパーピクセルの計算

3 次元 MRI データを読み込み、大きさが 1 の次元を削除した後、データをグレースケール強度イメージに変換します。

load mri;
D = squeeze(D);
A = ind2gray(D,map);

3 次元スーパーピクセルを計算します。出力イメージを形成します。出力イメージの各ピクセルは、対応するスーパーピクセル領域の平均色に設定されます。

[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);