如何合并同一对象的多点云手扫

时间:2019-02-06 12:58:24

标签: c++ glsl qtopengl

我正在做一个学校项目,我要做的一件事情是结合对同一物体的多次扫描。这些扫描或.obj文件,我想将它们组合以获得更好的扫描对象。

我在互联网上搜索解决方案,但找不到任何可接受的解决方案,因此,如果有人只是有想法或可循之路,我将不胜感激。

如果您对我的问题有任何疑问,请问我,也许我的英语不正确,我是法语。

谢谢!

1 个答案:

答案 0 :(得分:0)

您有N个点云的集合,它们代表相同的对象,可能都在不同的空间中(由转换矩阵提供),并且您希望将它们组合为一个点云。正确吗?

我可能会忘记这一点,因为我能想到的唯一方法很简单。如果我错了,请纠正我。

将所有点云放入同一空间。现在,所有点都在同一个空间中,合并变换后的点云非常简单。

但是,您可能希望删除重复的点,因为它们可能会干扰使用邻域的算法。为此,您可以使用kdtree并在半径很小的每个点周围进行半径搜索以检测聚类:对于找到的每个聚类仅保留一个点。使用扫描分辨率,您可以很好地猜测两个相邻点之间的典型距离d。否则,您可以通过为每个变换后的点云计算一个点与其最接近/第二最接近点之间的平均距离来进行估计。现在,“小半径”是该典型距离d的一小部分。