计算两个网格之间的豪斯多夫距离

问题描述 投票:0回答:3

我正在尝试找出两个网格之间的偏差。例如,在 3D 空间中定义的两组点之间的差异,我计划使用一些 3D 可视化工具(例如 Qt3D 或一些基于 OpenGL 的库)来可视化距离。

我有两组网格,基本上是两个

.stl
文件。我已编程将它们读取为输入。现在,我需要计算相应网格之间的偏差。为此,我知道豪斯多夫距离是一种可能的数学工具。有没有计算两个网格之间的豪斯多夫距离的库?

我设法找到了一段代码,但它本身或多或少是一个程序。它被称为M.E.S.H.。我不想按原样使用它,因为:

  1. 它是用C语言编写的;
  2. 我想开发自己的应用程序(当然使用库)。

其他问题都指向数学算法,我不打算自己实现该算法。

我正在使用 Qt5 和 MSVC2010(32 位)。

3d qt5 mesh cgal point-clouds
3个回答
7
投票

您可以在

libigl
中使用igl::hausdorff。如果您的第一个网格在矩阵
VA
的行中具有顶点,其面索引为
FA
,同样对于您的第二个网格也有
VB
FB
,那么

double d;
igl::hausdorff(VA,FA,VB,FB,d);

将计算两个网格之间的豪斯多夫距离

d


4
投票

实现起来似乎并没有那么复杂:http://vcg.isti.cnr.it/publications/papers/metro.pdf


0
投票

我不确定它是否有帮助,但看看对偶二次度量http://www.computingscience.nl/docs/vakken/ddm/slides/papers/garland2.pdf

© www.soinside.com 2019 - 2024. All rights reserved.