【问题标题】:Connecting points to make a triangle连接点以形成三角形
【发布时间】:2010-12-21 15:52:30
【问题描述】:

如果我有一组 3d 点(AKA 点云),那么确定我应该制作的 3 个点(三角形)组的最佳方法是什么,以创建表面重建?

【问题讨论】:

    标签: java 3d triangulation point-clouds 3d-reconstruction


    【解决方案1】:

    Delaunay Triangulation 是你的朋友!如果你用谷歌搜索这个词,有很多可用的资源,而且它背后的数学/逻辑并不太难。让它 FAST 有点困难(但完全可行),但这完全取决于您的要求。

    【讨论】:

    • +1 2000 年快乐!我花了一些时间在“计算几何”和“voronoi”周围搜索。似乎 Delaunay 三角剖分的主要优点是角度适度的约束,这避免了更简单的 Voronoi 镶嵌中的一些细三角形。在谷歌搜索中添加“java”会出现大量的库等等。
    • 如果我从头开始实现这个,出于好奇,我会从这里的一种更简单的算法开始,也许是“分而治之”:en.wikipedia.org/wiki/Delaunay_triangulation#Algorithms
    • 上次我实现它是为了预处理,所以它可以像我想要的一样慢。结果证明,一个简单的蛮力足以满足我当时的大部分需求。我建议至少实施一次蛮力版本,只是为了了解它是如何工作的。那就优化吧! (哦,如果我没记错的话,这个算法只是乞求多线程。)
    • Delaunay 三角剖分确实只适用于 2D。如果点在表面上,您可以进行 3D,您可以将它们映射到合理的 2D 坐标(如纬度/经度)上 - 否则您需要泊松、球旋转或行进立方体
    【解决方案2】:

    如果您愿意使用外部应用程序(或实现自己的应用程序),MeshLab 有很多很酷的重建算法:过滤器 > 重新划分网格、简化和重建Ball Pivoting Surface ReconstructionPoisson Reconstruction都是不错的。

    【讨论】:

      【解决方案3】:

      Vierjahn 等人引入了一种新方法。 sGNG: Online Surface Reconstruction based on Growing Neural Gas。虽然实现它是一个相当复杂的算法,但它允许对 3D 网格进行增量细化。

      您可以阅读技术报告here。此外,作者给出了提示并参考了3D点云3D网格重建研究领域的其他新技术。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-21
        • 2011-01-06
        • 1970-01-01
        • 2018-02-11
        • 2019-09-08
        • 2019-06-24
        • 1970-01-01
        • 2014-09-08
        相关资源
        最近更新 更多