使用点云库中ICP函数进行两片点云的配准
上个效果
绿色是输入点云
红色是目标点云
蓝色是输入点云
代码也很简单
//初始化输入点云对象
pcl::PointCloud<pcl::PointXYZ>::Ptr input_cloud(new pcl::PointCloud<pcl::PointXYZ>);
//加载输入点云
pcl::io::loadPCDFile("1.pcd", *input_cloud);
//初始化目标点云对象
pcl::PointCloud<pcl::PointXYZ>::Ptr target_cloud(new pcl::PointCloud<pcl::PointXYZ>);
//加载目标点云
pcl::io::loadPCDFile("2.pcd", *target_cloud);
//初始化ICP对象
IterativeClosestPoint <PointXYZ, PointXYZ> icp;
//设置输入点云
icp.setInputSource(input_cloud);
//设置目标点云
icp.setInputTarget(target_cloud);
pcl::PointCloud<pcl::PointXYZ> cloud_source_registered;
//执行对齐
icp.align(cloud_source_registered);