-2

我正在使用 open3d 进行点云注册。我有两个部分重叠的点云,分别是源云和目标云。我已经在一个通用坐标系中注册了它们。现在,我想删除重叠点以获得统一的单点云。

所有帮助将不胜感激。非常感谢您提前。

4

3 回答 3

1

@Rubens,谢谢你的回复。我已经尝试过基于体素的下采样,但在这种情况下它不会工作,因为它也会从非重叠部分删除数据点。我找到了解决这个问题的方法,但这需要很多时间。首先,我找到了点云的每个点与其相邻点之间的最小距离。一旦我知道了最小距离,我就会合并两个点云。下一步是再次找到合并点云的最近邻距离,如果它低于我首先找到的最小距离,那么我将删除该点并将其余点存储在最终点云中. 这种方法可以正常工作,但需要大量计算时间,

于 2021-02-17T19:50:02.263 回答
0

只需使用“voxel_down_sample.your_point_cloud”再次对两朵云进行体化。您可能在注册之前就这样做了,尤其是在使用大云时。如果没有,那么您可以使用任何示例方法,例如“uniform_down_sample.your_point_cloud”

于 2021-02-15T12:26:23.600 回答
0

您可以使用最大距离作为 max_correspondence_distance 运行registration_icp。然后从返回的 o3d.pipelines.registration.RegistrationResult 中,您将在一个网格中拥有一组对应点,这些点位于另一个网格中的点的该距离内。此时,您可以删除任一列中的所有点,或随机删除每个对应关系中的一个或另一个。

于 2021-06-24T16:02:06.673 回答