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