点云的配准主要用到的PCL库基本都是ICP算法,高阶的用到了粗配准SAC精配准ICP,但此类算法做demo可以,应用到实际时有很多问题,资料基本上是两个相同的点云,进行的配准,此类说实话没什么难度,具体的二次开发很少,这里我使用旋转矩阵+icp算法实现了一块点云整体与局部的配准,经过测试,能做到90%的重合。
#pragma warning(disable:4996)
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/registration/icp.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <boost/thread/thread.hpp>
#include <pcl/common/common_headers.h>
#include <pcl/console/parse.h>
#include <pcl/common/time.h>
#include <iostream>
#include <pcl/filters/filter.h>
#include <Eigen/core>
void print4x4Matrix(const Eigen::Matrix4d & matrix)
{
printf("Rotation matrix :\n");
printf(" | %6.3f %6.3f %6.3f | \n", matrix(0, 0), matrix(0, 1), matrix(0, 2));
printf("R = | %6.3f %6.3f %6.3f | \n", matrix(1, 0), matrix(1, 1), matrix(1, 2));
printf(" | %6.3f %6