1

我有一个包含多个连接组件的 3D 数据集。使用 matlab,我想为这些组件中的每一个计算一个特定的度量(该度量不包含在“regionprops”函数中)。我的问题是最好的方法是什么?

我想计算的指标是表面积。我知道如何为一个连接的组件执行此操作,但我正在寻找一种有效的方法来为所有满足特定体积标准的组件执行此操作。

到目前为止我所拥有的:

cc = bwconncomp(data,26); % find components
L = labelmatrix(cc); % 
stats = regionprops(data, 'area');


for i = 1:length(cc.PixelIdxList)

  if stats(i,1).Area > threshold

    a = (L==i);
    surfaceArea(i,1) = compute_surface_area(a);

  end

end

我相信有更好的方法来做到这一点!

在此先感谢,

4

1 回答 1

1

您可能希望使用arrayfun它计算面积高于 的每个连接组件的表面积threshold

idx = find([stats.Area]>threshold);
arrayfun(@(ii) compute_surface_area(L == ii), idx, 'UniformOutput', 0 )

在这里,for循环是用一行代码编写的。

于 2013-09-17T17:44:20.573 回答