eigen::Affine3d 转换

平移eigen::vector3d和四元数Eigen::Quaterniond 转 eigen::Affine3d

Eigen::Vector3d t = Eigen::Vector3d::Zero();
Eigen::Quaterniond q = Eigen::Quaterniond ::Identity();

Eigen::Affine3d affine3d = t * q.toRotationMatrix();

 Eigen::Matrix4d 转 eigen::Affine3d

Eigen::Matrix4d mat = Eigen::Matrix4d::Identity();
Eigen::Affine3d transform = Eigen::Affine3d::Identity();
transform.matrix() = mat; 

 这里主要是用于点云加速,pcl自带的点云变换包含指令集优化,如下:

 template  inline PointT
 transformPoint (const PointT &point, const Eigen::Transform &transform)
 {
   PointT ret = point;
   pcl::detail::Transformer tf (transform.matrix ());
   tf.se3 (point.data, ret.data);
   return (ret);
 }

Point Cloud Library (PCL): pcl/common/impl/transforms.hpp Source File

你可能感兴趣的:(PCL开发,c++,linux,windows)