1

我正在开发一个实时扫描仪,我可以在其中实时扫描表面。到目前为止,我可以扫描表面的一小块并可以保存它。一个补丁意味着仅对表面(点云或三角形)进行 1 次扫描。

我想要的是,我想实时扫描多个补丁。为此,我必须将前一个补丁与当前补丁合并。但我不知道合并两个补丁的标准方式或算法是什么,也不知道哪一个是最好的合并方式,例如,在三角剖分之前(点云合并),或者在三角剖分之后(网格合并)。合并意味着删除重叠的点或三角形

我的想法:如果有两个点云,源和目标然后使用VTK,从目标点云中找到一个最近的点,然后选择一个点,另一个被丢弃。这是一种合并的方法吗?这只是我的想法?但问题是,源和目标中的点数会有所不同。

如何使用 VTK 合并两个补丁,请指导我?

还建议我实现实时扫描任务的标准和最佳方式是什么。

案例#1:
i)点云采集

ii) 注册

iii) 合并

iv) 三角测量

案例#2:

i) 点云采集

ii) 注册

iii) 三角测量

iv) 合并

案例#3:

i) 点云采集

ii) 三角测量

iii)注册

iv) 合并

请指导我。谢谢。

4

1 回答 1

4

我在这里放了一张便条,因为我一直在考虑类似的事情。

您建议的方法(在合并期间进行最近邻搜索)似乎是可行的。如果您基于一些理想的分辨率而不是搜索 1 个邻居进行半径搜索,则合并的两个云之间存在不同大小的问题似乎不是问题。

要管理您的案例 1,您可以尝试合并所有云,然后在三角剖分之前使用体素网格(例如 pcl::VoxelGrid)进行下采样(这将是最简单的方法,但可能不是您想要的)。

封装在 pcl::GreedyProjectionTriangulation 中的算法似乎主要在下面的论文 [1] 中描述。在那篇论文中,他们还描述了一个增量网格更新过程,这是对算法的一个小改动(他们删除了靠近新点的三角形并再次开始贪婪三角剖分)。据我所知,这还没有在 PCL 中实现,但应该不会太难。这将对应于您的情况 2。但是,您得到的网格将取决于您合并云的顺序。因为这是一项时间投资,我建议先尝试基于点的合并。

[1] 马顿、ZC、RB Rusu 和 M. Beetz。2009.“关于大型和嘈杂点云的快速表面重建方法”。在 IEEE 机器人与自动化国际会议上,3218-3223。http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5152628

于 2013-02-09T06:05:20.673 回答