1

我有一个规则的方形网格,其中我所有的数据点都存储在质心。我有一个标量场(范围:0->1),它指示细胞内物质的数量。我有兴趣识别细胞内这种物质的界面(用于进一步处理而不是用于可视化)。

我遇到了行进立方体算法(http://paulbourke.net/geometry/polygonise/)。在这里,我需要单元格角落的值。所以我平均了相邻单元格的质心值。这种平均加上进一步的线性化以在 MC 中的“多边形化”期间找到交点,导致了诸如此类的非现实界面。

在此处输入图像描述

在这里,灰色细胞充满了物质,而它的邻居则只有最少量的物质。理想情况下,这应该非常接近 celtre 单元的边界。我觉得这是由于 0.25 和 0 之间的线性插值导致它远离其预期位置而发生的。

可以做些什么来解决这个问题吗?

4

1 回答 1

1

Marching-Cubes 算法有一个可以调整的参数,即isolevel. 在您的示例中,您似乎0.05isolevel. 在选择下方的值0.25(例如0.24)时,接口将更靠近中心单元格。但是,当两个具有值的单元格1相互接触时,您仍然会得到不满意的结果,角点的平均值为0.5

您仍然可以尝试什么:您可以取角值的最大像元值并将其提高isolevel到刚好低于的值1(例如0.9),而不是计算角值的平均像元值。

于 2019-03-14T09:11:27.723 回答