40 #ifndef PCL_REGISTRATION_TRANSFORMATION_ESTIMATION_SVD_H_
41 #define PCL_REGISTRATION_TRANSFORMATION_ESTIMATION_SVD_H_
43 #include <pcl/registration/transformation_estimation.h>
44 #include <pcl/cloud_iterator.h>
48 namespace registration
57 template <
typename Po
intSource,
typename Po
intTarget,
typename Scalar =
float>
61 typedef boost::shared_ptr<TransformationEstimationSVD<PointSource, PointTarget, Scalar> >
Ptr;
62 typedef boost::shared_ptr<const TransformationEstimationSVD<PointSource, PointTarget, Scalar> >
ConstPtr;
83 Matrix4 &transformation_matrix)
const;
94 const std::vector<int> &indices_src,
96 Matrix4 &transformation_matrix)
const;
108 const std::vector<int> &indices_src,
110 const std::vector<int> &indices_tgt,
111 Matrix4 &transformation_matrix)
const;
124 Matrix4 &transformation_matrix)
const;
136 Matrix4 &transformation_matrix)
const;
147 const Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> &cloud_src_demean,
148 const Eigen::Matrix<Scalar, 4, 1> ¢roid_src,
149 const Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> &cloud_tgt_demean,
150 const Eigen::Matrix<Scalar, 4, 1> ¢roid_tgt,
151 Matrix4 &transformation_matrix)
const;
159 #include <pcl/registration/impl/transformation_estimation_svd.hpp>
boost::shared_ptr< TransformationEstimationSVD< PointSource, PointTarget, Scalar > > Ptr
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
Eigen::Matrix< Scalar, 4, 4 > Matrix4
TransformationEstimation represents the base class for methods for transformation estimation based on...
virtual void getTransformationFromCorrelation(const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_src_demean, const Eigen::Matrix< Scalar, 4, 1 > ¢roid_src, const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_tgt_demean, const Eigen::Matrix< Scalar, 4, 1 > ¢roid_tgt, Matrix4 &transformation_matrix) const
Obtain a 4x4 rigid transformation matrix from a correlation matrix H = src * tgt'.
Iterator class for point clouds with or without given indices.
TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given ...
TransformationEstimationSVD(bool use_umeyama=true)
Constructor.
void estimateRigidTransformation(const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, Matrix4 &transformation_matrix) const
Estimate a rigid rotation transformation between a source and a target point cloud using SVD...
virtual ~TransformationEstimationSVD()
TransformationEstimation< PointSource, PointTarget, Scalar >::Matrix4 Matrix4
boost::shared_ptr< const TransformationEstimationSVD< PointSource, PointTarget, Scalar > > ConstPtr