Point Cloud Library (PCL)  1.8.1-dev
List of all members | Public Types | Public Member Functions | Protected Member Functions
pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar > Class Template Reference

TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given correspondences. More...

#include <pcl/registration/transformation_estimation_svd_scale.h>

+ Inheritance diagram for pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >:

Public Types

typedef boost::shared_ptr
< TransformationEstimationSVDScale
< PointSource, PointTarget,
Scalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimationSVDScale
< PointSource, PointTarget,
Scalar > > 
ConstPtr
 
typedef
TransformationEstimationSVD
< PointSource, PointTarget,
Scalar >::Matrix4 
Matrix4
 
- Public Types inherited from pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >
typedef boost::shared_ptr
< TransformationEstimationSVD
< PointSource, PointTarget,
Scalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimationSVD
< PointSource, PointTarget,
Scalar > > 
ConstPtr
 
typedef
TransformationEstimation
< PointSource, PointTarget,
Scalar >::Matrix4 
Matrix4
 
- Public Types inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >
typedef Eigen::Matrix< Scalar, 4, 4 > Matrix4
 
typedef boost::shared_ptr
< TransformationEstimation
< PointSource, PointTarget,
Scalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimation
< PointSource, PointTarget,
Scalar > > 
ConstPtr
 

Public Member Functions

 TransformationEstimationSVDScale ()
 Inherits from TransformationEstimationSVD, but forces it to not use the Umeyama method. More...
 
- Public Member Functions inherited from pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >
 TransformationEstimationSVD (bool use_umeyama=true)
 Constructor. More...
 
virtual ~TransformationEstimationSVD ()
 
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. More...
 
void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const std::vector< int > &indices_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. More...
 
void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const std::vector< int > &indices_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const std::vector< int > &indices_tgt, Matrix4 &transformation_matrix) const
 Estimate a rigid rotation transformation between a source and a target point cloud using SVD. More...
 
void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const pcl::Correspondences &correspondences, Matrix4 &transformation_matrix) const
 Estimate a rigid rotation transformation between a source and a target point cloud using SVD. More...
 
- Public Member Functions inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >
 TransformationEstimation ()
 
virtual ~TransformationEstimation ()
 

Protected Member Functions

void getTransformationFromCorrelation (const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_src_demean, const Eigen::Matrix< Scalar, 4, 1 > &centroid_src, const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_tgt_demean, const Eigen::Matrix< Scalar, 4, 1 > &centroid_tgt, Matrix4 &transformation_matrix) const
 Obtain a 4x4 rigid transformation matrix from a correlation matrix H = src * tgt'. More...
 
- Protected Member Functions inherited from pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >
void estimateRigidTransformation (ConstCloudIterator< PointSource > &source_it, ConstCloudIterator< PointTarget > &target_it, Matrix4 &transformation_matrix) const
 Estimate a rigid rotation transformation between a source and a target. More...
 

Additional Inherited Members

- Protected Attributes inherited from pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >
bool use_umeyama_
 

Detailed Description

template<typename PointSource, typename PointTarget, typename Scalar = float>
class pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >

TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given correspondences.

Optionally the scale is estimated. Note that the similarity transform might not be optimal for the underlying Frobenius Norm.

Note
The class is templated on the source and target point types as well as on the output scalar of the transformation matrix (i.e., float or double). Default: float.
Author
Suat Gedikli

Definition at line 58 of file transformation_estimation_svd_scale.h.

Member Typedef Documentation

template<typename PointSource , typename PointTarget , typename Scalar = float>
typedef boost::shared_ptr<const TransformationEstimationSVDScale<PointSource, PointTarget, Scalar> > pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >::ConstPtr

Definition at line 62 of file transformation_estimation_svd_scale.h.

template<typename PointSource , typename PointTarget , typename Scalar = float>
typedef TransformationEstimationSVD<PointSource, PointTarget, Scalar>::Matrix4 pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >::Matrix4

Definition at line 64 of file transformation_estimation_svd_scale.h.

template<typename PointSource , typename PointTarget , typename Scalar = float>
typedef boost::shared_ptr<TransformationEstimationSVDScale<PointSource, PointTarget, Scalar> > pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >::Ptr

Definition at line 61 of file transformation_estimation_svd_scale.h.

Constructor & Destructor Documentation

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >::TransformationEstimationSVDScale ( )
inline

Inherits from TransformationEstimationSVD, but forces it to not use the Umeyama method.

Definition at line 67 of file transformation_estimation_svd_scale.h.

Member Function Documentation

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >::getTransformationFromCorrelation ( const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &  cloud_src_demean,
const Eigen::Matrix< Scalar, 4, 1 > &  centroid_src,
const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &  cloud_tgt_demean,
const Eigen::Matrix< Scalar, 4, 1 > &  centroid_tgt,
Matrix4 transformation_matrix 
) const
protectedvirtual

Obtain a 4x4 rigid transformation matrix from a correlation matrix H = src * tgt'.

Parameters
[in]cloud_src_demeanthe input source cloud, demeaned, in Eigen format
[in]centroid_srcthe input source centroid, in Eigen format
[in]cloud_tgt_demeanthe input target cloud, demeaned, in Eigen format
[in]centroid_tgtthe input target cloud, in Eigen format
[out]transformation_matrixthe resultant 4x4 rigid transformation matrix

Reimplemented from pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >.

Definition at line 44 of file transformation_estimation_svd_scale.hpp.


The documentation for this class was generated from the following files: