我正在尝试找出两个网格之间的偏差。例如,在 3D 空间中定义的两组点之间的差异,我计划使用一些 3D 可视化工具(例如 Qt3D 或一些基于 OpenGL 的库)来可视化距离。
我有两组网格,基本上是两个
.stl
文件。我已编程将它们读取为输入。现在,我需要计算相应网格之间的偏差。为此,我知道豪斯多夫距离是一种可能的数学工具。有没有计算两个网格之间的豪斯多夫距离的库?
我设法找到了一段代码,但它本身或多或少是一个程序。它被称为M.E.S.H.。我不想按原样使用它,因为:
其他问题都指向数学算法,我不打算自己实现该算法。
我正在使用 Qt5 和 MSVC2010(32 位)。
您可以在
libigl中使用
igl::hausdorff
。如果您的第一个网格在矩阵 VA
的行中具有顶点,其面索引为 FA
,同样对于您的第二个网格也有 VB
和 FB
,那么
double d;
igl::hausdorff(VA,FA,VB,FB,d);
将计算两个网格之间的豪斯多夫距离
d
。
实现起来似乎并没有那么复杂:http://vcg.isti.cnr.it/publications/papers/metro.pdf
我不确定它是否有帮助,但看看对偶二次度量http://www.computingscience.nl/docs/vakken/ddm/slides/papers/garland2.pdf