在MATLAB中,发现3D附近(in matlab, find 3D neighbourhood)

2019-09-24 07:13发布

我有一个体积(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