在3d高度图中找到鞍点

Hug*_*une 5 language-agnostic algorithm 3d geometry point-clouds

给定一个3d高度图(来自激光扫描仪),我如何找到鞍点

即给出这样的东西:

身高

我正在寻找曲率在一个方向上为正而在另一个方向上为负的所有点.

(这些方向不需要与X轴和Y轴对齐.我知道如何检查X方向的曲率是否与Y方向的曲率符号相反,但这并不能涵盖所有情况.更糟糕的是,X中的分辨率与Y中的分辨率不同

在此输入图像描述

理想情况下,我正在寻找一种能够容忍一定量噪音并且只标记"重要"鞍点的算法.

mcd*_*lla 2

(来自对数学的猜测而不是实践经验)

将二次方程拟合到每个候选点周围的小补丁中的曲面,例如使用最小二乘法。补丁有多大是控制噪声的一种方法,您可以通过根据点与候选点的距离对点进行加权来获得收益。在矩阵表示法中,您可以将二次方程表示为 x'Ax + b'x + c,其中 A 是对称的。

二次方程在 x = (A^-1)b/2 处的梯度为零。如果补丁中没有此内容,请将其丢弃。

如果 A 同时具有 +ve 和 -ve 特征值,则在 x 处有一个鞍点。由于 A 只有 2x2,因此最多有两个特征值,因此您可以忽略它为零特征值的情况,因此您无法在前一阶段反转它。