如何将1点云数据与1个或多个点云数据进行比较?

时间:2015-04-26 04:52:01

标签: visual-c++ point-clouds

我想将点云数据(.pcd,.ply文件)与一个或多个点云数据进行比较,并希望得到类似的点或补丁。所以我想知道必须使用哪种技术或算法?

1 个答案:

答案 0 :(得分:0)

您想要做的是:

  1. 特征点检测:在点云的表面上找到具有非常独特且具有描述性的邻域的点。

  2. 特征估计:对于这些点及其邻居(通常在球半径R中),计算描述符。这可以是直方图,简单值或多维向量。取决于您正在使用的描述符。

  3. 查找对应关系:现在对于两个点云,比较这些描述符并找到匹配的(这些是对应关系)并尝试以一点云适合另一个的方式找到这些对应关系。拒绝不匹配的对应关系。

  4. 如果两个云有一组匹配的对应关系,你可以说这两个肯定是相似的。

    我建议使用Point Clouds Library(PCL)。这里有一个非常好的教程:

    http://pointclouds.org/documentation/tutorials/correspondence_grouping.php#correspondence-grouping

    此处还有功能算法的概述(虽然不完整):

    https://github.com/PointCloudLibrary/pcl/wiki/Overview-and-Comparison-of-Features