嗨!
我从 Kinect 传感器组织了点云。假设我有一个有组织的沙发点云,前面有一张桌子。我想要的是两朵云:沙发和桌子
我正在寻找一些算法来获取连接的组件。有没有人有一些伪代码或论文?或者也许一些代码(Matlab)
我现在的想法:我可以使用 2D 信息来获取一个点的相邻像素。接下来我可以检查到相邻像素的欧几里得距离。如果距离低于阈值,则该像素属于同一簇。...
谢谢
嗨!
我从 Kinect 传感器组织了点云。假设我有一个有组织的沙发点云,前面有一张桌子。我想要的是两朵云:沙发和桌子
我正在寻找一些算法来获取连接的组件。有没有人有一些伪代码或论文?或者也许一些代码(Matlab)
我现在的想法:我可以使用 2D 信息来获取一个点的相邻像素。接下来我可以检查到相邻像素的欧几里得距离。如果距离低于阈值,则该像素属于同一簇。...
谢谢
正如@Amro 指出的那样,DBSCAN是您应该研究的算法。它是基于“密度连接”组件的聚类。
还要注意 GDBSCAN 变体(Generalized DBSCAN)。您不限于像欧几里得这样的原始距离,但您可以根据需要使“邻域”定义变得复杂。
Matlab 可能不是最好的选择。要使 DBSCAN 真正快速,您需要对索引加速的支持。最近的scikit-learn(准确地说是 0.14)刚刚获得了 DBSCAN 的基本索引加速,而ELKI已经使用它多年了。ELKI 似乎更“灵活”。拥有 GDBSCAN 并拥有易于使用自定义距离函数扩展的索引结构。sklearn 可能只会加速一些内置距离。