在 Matlab 中查找连接的组件会给出错误的结果

Finding connected components in Matlab gives wrong results

我有一个大小为 60-by-90-by-10[=30 的二进制 3D 图像=].使用以下 Matlab 代码,我正在搜索图像中 1s 的连接体素:

conn = 26;
CC = bwconncomp(img, conn);
stats = regionprops(CC,'pixellist');

真正奇怪的是 stats returns 坐标在 3D 图像之外。

例如

voxels = stats(6).PixelList;
voxels(23,:)

我正在获取 [61,15,4] 的 3D 坐标。

这里有什么问题?关于这个问题我也担心连通分量的计算有误

这是 3D 图像(作为 .mat 文件):https://www.dropbox.com/s/pw3yzbcx4uyhh9s/img.mat?dl=0

您的 .mat 文件显示了一个大小为 60x90x10 的矩阵,这意味着 60 行、90 列和 10 个条带,因此 y=60、x=90 和 z=10。

看起来计算是正确的,你只是对你的初始图像大小感到困惑......没有任何改变,你的图像只是与你假设的大小不同:-)(尝试 imagesc(img(:,:,1))看!)

row/column 与 x/y 这件事可能很烦人,我从经验中知道...