1

我正在尝试在 3D 脑 MRI(.mha 数据类型)上实现脑肿瘤分割。

初步分割后,我正在应用 26-neighbor 连通分量算法(使用 bwconncomp)通过获得最大体积的分量来获得最大连通分量,然后我需要计算结果分量的质心。

我不确定我计算最大连通分量和质心的方法是否正确,因为获得的质心及其附近voxels都有 value 0

3D voxel我也对坐标的表示感到困惑。例如。如果centroid=(x,y,z),它是否对应于x=rowy=columnz=2D切片?

任何帮助,将不胜感激。以下是我的相关部分代码。

CC=bwconncomp(Ibin,26);  %Input Black & White 3D data of size 240x240x155
Pixelid=regionprops(CC,'PixelIdxList');
[prow pcol]=size(Pixelid);
maxval=numel(Pixelid(1).PixelIdxList);
index=1;
for i=1:prow
 number=numel([Pixelid(i).PixelIdxList]);
 if (number>maxval)  %calculating the component with max number of voxels
  maxval=number;
  index=i;
 end
end
for i=1:prow
 if i~=index
   Ibin(Pixelid(i).PixelIdxList)=0;
 end
end
CC1=bwconncomp(Ibin,26); 
Cent=regionprops(CC1,'Centroid');
4

1 回答 1

0

我将您的代码更改为以下内容:

CC=bwconncomp(Ibin,26);
PixelIdxList = CC.PixelIdxList;
maxval = numel(PixelIdxList{1});
index = 1;
for ii = 1:length(PixelIdxList)
    number = numel(PixelIdxList{ii});
    if number > maxval
        maxval = number;
        index = ii;
    end
end
[y,x,z] = ind2sub(size(Ibin),PixelIdxList{index})
centroid = [mean(x), mean(y), mean(z)];

bwconncomp已经给你了PixelIdxList,所以你不必使用regionprops. 这些PixelIdxList像素按线性索引列出,因此您必须将它们转换为下标才能获得 x、y 和 z 坐标。MATLAB 矩阵中的第一维表示y坐标,第二维表示x,第三维表示z。质心是通过获取对象中包含的所有像素的平均 x、y 和 z 坐标来计算的。

于 2015-09-12T17:55:15.327 回答