Advertisement

PCL使用ICP(iterative closest point)算法

阅读量:

ICP介绍

假设一个空间仅仅是一个另一空间经过刚性变换的结果,则可通过持续缩小两组对应点间的最小距离来计算两组空间间的刚性变换矩阵。从而使得这两组空间能够完美地对齐,并且这种方法即为ICP算法。

Why ICP 算法?

ICP主要用于二维重建任务中,在三维建模方面则用于注册过程,并且在其他相关应用场景中也被广泛应用。

如何使用PCL里的ICP算法?

1. 添加必要头文件:

复制代码
 #include <pcl/io/pcd_io.h>

    
 #include <pcl/point_types.h>
    
 #include <pcl/registration/icp.h>  

如下代码所示:创建ICP实例并配置参数;其中setInputSource用于指定原始扫描的数据源位置矩阵(即初始源坐标系),setInputTarget用于设置目标坐标系中的扫描数据矩阵;特别定义的Final矩阵将用于存储经过ICP算法处理后的最终配准结果矩阵;当变换后的源坐标系与目标坐标系高度吻合时(即经过刚性变换后源坐标系数据几乎完全重合于目标坐标系中的对应数据),则icp.hasConverged()返回1(true),此时可执行计算并返回ICP算法的拟合评分以及其他相关评估指标。

复制代码
   pcl::Itera

全部评论 (0)

还没有任何评论哟~