- 坐标变换-旋转(我们把点云原坐标系称为世界坐标系,把以本身正方向得到的坐标系称为 基坐标系)
让点云cloud 旋转到与坐标轴重回,且质心位于世界坐标系原点;
1。由cloud 本身参数求得质心,获得协方差矩阵,由协方差矩阵solver 得到 vectors 和 values,
使得vectors 正交化,得到点云主方向极坐标,也是由cloud世界坐标到基坐标的旋转矩阵,
2.点云旋转至世界坐轴系重回即为基坐标向世界坐标系旋转。求仿射变换矩阵。
Eigen::Matrix4f transfroms_residual = Eigen::Matrix4f::Identity(); Eigen::Matrix4f transfroms_residual_inv = Eigen::Matrix4f::Identity(); transfroms_residual.block<3, 3>(0, 0) = eigenVectorsPCA_residual.transpose(); transfroms_residual.block<3, 1>(0, 3) = -1.0f*(eigenVectorsPCA_residual.transpose())*(pcaCentroid_residual.head<3>()); //-R*t transfroms_residual_inv = transfroms_residual.inverse();
要使质心位于世界坐标系原点,则平移向量为质心点坐标;
求得仿射变换矩阵;