从点云计算2D轮廓

时间:2017-12-01 16:26:59

标签: algorithm geometry contour point-clouds

我有一个2D点云,每个都带有一些标量值。假设这个值可以在平面上的任何点插值,并且我有一定的自由度来选择精确的插值公式,只要它是平滑的,并且当它们的接近度计算时会收敛到给定的点。 我的目标是构造对应于常数标量值的闭合轮廓。

我的具体情况稍微复杂一些,但为了简单起见,我们假设我们在某些点采样了一个地形高程(高度),我们需要构建一些恒定高程的轮廓,对于某些给定的值。等高线应该用折线近似。

之前我以常规网格的形式接收了点,我通过分别检查和构建(如果需要)每个网格单元格中的轮廓线段来解决它。也就是说,对于每个网格单元,我检查角落中的值以检测轮廓是否应该跨越单元边界(某些角应该更高并且更低),并分别计算交点。

现在我需要从任意点云重建这个。

当然,我可以从点云(因为我们知道插值)构建一个规则网格,足够密集,可以计算轮廓,但我想要一个更有效的算法。 我的想法是连接云中的点,使得平面被三角形(或更复杂的凸多边形)覆盖,每个都将形成网格单元。然后我可以像以前一样构造轮廓。

是否有一种已知算法可以解决这个问题?

更新

感谢@coproc。我知道Delaunay三角测量,这可能是要走的路。 然而,关于如何在平面上的任意点进行插值仍然存在问题:仅考虑三角形顶点或其他附近点是否足够。在一个不实情的情况下,可能存在一个点非常接近三角形的情况。例如这里: For example here

作为替代方案,我可以想到从平面中的任意点开始,然后垂直于渐变来创建轮廓。

1 个答案:

答案 0 :(得分:1)

这似乎是GIS插值/外推问题。有几种技术可以更“智能地”进行插值,我建议你先尝试反距离加权(IDW),然后再克制,如果你有时间注意它的话。

总之,IDW基于“地理第一定律”:彼此接近的事物往往相互关联。您可以为更近的点提供更高的权重并插入网格。

Kriging试图考虑所讨论现象的方向性并相应地调整权重。考虑根据不同方向的方差对邻域和缩放点距离进行主成分分析。

这是对一些现有方法的简要介绍。 http://www.bisolutions.us/A-Brief-Introduction-to-Spatial-Interpolation.php