有组织的3d点云数据中的连接组件

时间:2013-08-09 14:45:41

标签: algorithm matlab cluster-analysis point-clouds

HY!

我已经从Kinect传感器组织了点云。假设我有一个有组织的点沙云,前面有一张桌子。我想要的是两片云:沙发和桌子

我正在寻找一些算法来获取连接的组件。 有没有人有一些伪代码或文件?或者也许是一些代码(Matlab)

我的想法:我可以使用2D信息来获取点的相邻像素。 接下来,我可以检查到邻近像素的欧氏距离。如果距离低于阈值,则像素属于同一群集。 ...

由于

1 个答案:

答案 0 :(得分:3)

正如@Amro指出的,DBSCAN是你应该学习的算法。它是基于“密度连接”组件的聚类。

另请注意GDBSCAN变体(广义DBSCAN)。您不仅限于欧几里德等原始距离,但您可以根据需要将“邻域”定义为复杂。

Matlab可能不是最佳选择。为了使DBSCAN非常快,您需要支持索引加速。最近scikit-learn(准确地说是0.14)刚刚获得了DBSCAN的基本索引加速,ELKI已经有了多年。 ELKI似乎更“灵活”。拥有GDBSCAN并具有易于使用自定义距离函数扩展的索引结构。 sklearn可能只会加速一些内置距离。