在matlab中,找到3D邻域

时间:2012-10-18 16:07:15

标签: matlab 3d neighbours

我有一个经过分割过程的体积(3D矩阵)。大多数体积由NaN(或零)组成,但已通过某些标准的区域除外(见图)。我需要知道每个剩余段的体素数量有多大以及它们在2D平面(xy,xz,yz)上的分布情况。 matlab中有什么可以帮助我以有效的方式而不是直接搜索吗?音量可能相当大。对于前者在附图中,存在一个黄色/褐色的7个体素的片段,并且比xy更垂直地延伸。 在此先感谢。enter image description here

2 个答案:

答案 0 :(得分:4)

最方便的解决方案是使用REGIONPROPS。在您的示例中:

stats = regionprops(image, 'area', 'centroid')

对于每个特征,结构统计中都有一个条目,其中包含区域(即体素的数量)和质心。

答案 1 :(得分:3)

我认为你所寻找的是bwlabeln。它允许您在3D空间中查找blob,就像在{2D}中bwlabel一样。之后,您可以使用regionprops找出数据的属性。

直接来自帮助:

  

bwlabeln标记二进制图像中的连接组件。       L = bwlabeln(BW)返回一个标签矩阵L,包含标签       BW中的连通组件。 BW可以有任何尺寸; L是一样的       大小为BW。 L的元素是大于或等于的整数值       标记为0的像素是背景。标记为1的像素       组成一个对象,标记为2的像素构成第二个对象,并且       等等。两个维度的默认连接为8,三个为26       尺寸,以及更高尺寸的CONNDEF(NDIMS(BW),'maximal')。