我有一个体积(3D矩阵)已经经过分割处理。 大部分体积由NaN的(或零)的,所不同的是已通过一些标准(见图片)的区域。 我需要知道每个剩余段有多大的体素的数量,以及如何为他们在2D平面上分布(XY,XZ,YZ)。 是否有MATLAB任何可以帮助我以有效的方式,而不是直接搜索做到这一点? 体积可以是相当大的。 对于前。 在附加的图片存在的体素7微黄/褐色一个段,比的xy垂直延伸更多。 提前致谢。
Answer 1:
最方便的解决方法是使用REGIONPROPS 。 在您的例子:
stats = regionprops(image, 'area', 'centroid')
对于每一个功能,就有可能在结构统计与区域(即体素数)和质心的条目。
Answer 2:
我认为你正在寻找的是什么叫bwlabeln
。 它可以让你找到在3D空间中的斑点,就像bwlabel
确实在2D。 之后,您可以使用regionprops
找出数据的属性。
直接从帮助中获取:
bwlabeln标签在二进制图象连接的组件。 L = bwlabeln(BW)返回一个标签矩阵,L,含有在BW的连接分量的标签。 BW可以有任何尺寸; L是大小BW相同。 L的元素是整数值大于或等于0的像素标记为0是背景。 标记为1的像素构成一个对象,标记为2的像素构成的第二对象,等等。 默认的连接是8两个维度,26三个维度,和CONNDEF(为ndims(BW),“最大”)为更高的尺寸。
文章来源: in matlab, find 3D neighbourhood