pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar > Class Template Reference
Module registration

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

`#include <pcl/registration/transformation_estimation_svd.h>`

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

## Public Types

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

| 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 | 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...
virtual 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 Attributes

bool | use_umeyama_

## Detailed Description

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

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

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
  Dirk Holz, Radu B. Rusu

Definition at line 58 of file transformation_estimation_svd.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointSource, typename PointTarget, typename Scalar = float>

typedef boost::shared_ptr<const TransformationEstimationSVD<PointSource, PointTarget, Scalar> > pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::ConstPtr

Definition at line 62 of file transformation_estimation_svd.h.

## Matrix4

template<typename PointSource, typename PointTarget, typename Scalar = float>

typedef TransformationEstimation<PointSource, PointTarget, Scalar>::Matrix4 pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::Matrix4

Definition at line 64 of file transformation_estimation_svd.h.

## Ptr

template<typename PointSource, typename PointTarget, typename Scalar = float>

typedef boost::shared_ptr<TransformationEstimationSVD<PointSource, PointTarget, Scalar> > pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::Ptr

Definition at line 61 of file transformation_estimation_svd.h.

## Constructor & Destructor Documentation

## TransformationEstimationSVD()

template<typename PointSource, typename PointTarget, typename Scalar = float>

pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::TransformationEstimationSVD | ( | bool | use_umeyama = `true` | ) |

inline

Constructor.

Parameters

  [in] | use_umeyama | Toggles whether or not to use 3rd party software

Definition at line 68 of file transformation_estimation_svd.h.

## ~TransformationEstimationSVD()

template<typename PointSource, typename PointTarget, typename Scalar = float>

virtual pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::~TransformationEstimationSVD | ( |  | ) |

inline virtual

Definition at line 72 of file transformation_estimation_svd.h.

## Member Function Documentation

## estimateRigidTransformation() [1/5]

template<typename PointSource, typename PointTarget, typename Scalar >

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | const pcl::PointCloud< PointSource > & | cloud_src,
|  | const pcl::PointCloud< PointTarget > & | cloud_tgt,
|  | Matrix4 & | transformation_matrix
| ) |  | const

inline virtual

Estimate a rigid rotation transformation between a source and a target point cloud using SVD.

Parameters

  [in] | cloud_src | the source point cloud dataset
  [in] | cloud_tgt | the target point cloud dataset
  [out] | transformation_matrix | the resultant transformation matrix

Implements pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >.

Definition at line 47 of file transformation_estimation_svd.hpp.

Referenced by pcl::registration::TransformationEstimationSVD< PointT, PointT, Scalar >::~TransformationEstimationSVD().

## estimateRigidTransformation() [2/5]

template<typename PointSource, typename PointTarget, typename Scalar >

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | const pcl::PointCloud< PointSource > & | cloud_src,
|  | const std::vector< int > & | indices_src,
|  | const pcl::PointCloud< PointTarget > & | cloud_tgt,
|  | Matrix4 & | transformation_matrix
| ) |  | const

inline virtual

Estimate a rigid rotation transformation between a source and a target point cloud using SVD.

Parameters

  [in] | cloud_src | the source point cloud dataset
  [in] | indices_src | the vector of indices describing the points of interest in cloud_src
  [in] | cloud_tgt | the target point cloud dataset
  [out] | transformation_matrix | the resultant transformation matrix

Implements pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >.

Definition at line 66 of file transformation_estimation_svd.hpp.

## estimateRigidTransformation() [3/5]

template<typename PointSource, typename PointTarget, typename Scalar >

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::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

inline virtual

Estimate a rigid rotation transformation between a source and a target point cloud using SVD.

Parameters

  [in] | cloud_src | the source point cloud dataset
  [in] | indices_src | the vector of indices describing the points of interest in cloud_src
  [in] | cloud_tgt | the target point cloud dataset
  [in] | indices_tgt | the vector of indices describing the correspondences of the interst points from indices_src
  [out] | transformation_matrix | the resultant transformation matrix

Implements pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >.

Definition at line 85 of file transformation_estimation_svd.hpp.

## estimateRigidTransformation() [4/5]

template<typename PointSource, typename PointTarget, typename Scalar >

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | const pcl::PointCloud< PointSource > & | cloud_src,
|  | const pcl::PointCloud< PointTarget > & | cloud_tgt,
|  | const pcl::Correspondences & | correspondences,
|  | Matrix4 & | transformation_matrix
| ) |  | const

virtual

Estimate a rigid rotation transformation between a source and a target point cloud using SVD.

Parameters

  [in] | cloud_src | the source point cloud dataset
  [in] | cloud_tgt | the target point cloud dataset
  [in] | correspondences | the vector of correspondences between source and target point cloud
  [out] | transformation_matrix | the resultant transformation matrix

Implements pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >.

Definition at line 105 of file transformation_estimation_svd.hpp.

## estimateRigidTransformation() [5/5]

template<typename PointSource, typename PointTarget, typename Scalar >

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | ConstCloudIterator< PointSource > & | source_it,
|  | ConstCloudIterator< PointTarget > & | target_it,
|  | Matrix4 & | transformation_matrix
| ) |  | const

inline protected

Estimate a rigid rotation transformation between a source and a target.

Parameters

  [in] | source_it | an iterator over the source point cloud dataset
  [in] | target_it | an iterator over the target point cloud dataset
  [out] | transformation_matrix | the resultant transformation matrix

Definition at line 118 of file transformation_estimation_svd.hpp.

## getTransformationFromCorrelation()

template<typename PointSource , typename PointTarget , typename Scalar>

void pcl::registration::TransformationEstimationSVD< 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

protected virtual

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

Parameters

  [in] | cloud_src_demean | the input source cloud, demeaned, in Eigen format
  [in] | centroid_src | the input source centroid, in Eigen format
  [in] | cloud_tgt_demean | the input target cloud, demeaned, in Eigen format
  [in] | centroid_tgt | the input target cloud, in Eigen format
  [out] | transformation_matrix | the resultant 4x4 rigid transformation matrix

Reimplemented in pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >.

Definition at line 172 of file transformation_estimation_svd.hpp.

Referenced by pcl::registration::TransformationEstimationSVD< PointT, PointT, Scalar >::~TransformationEstimationSVD().

## Member Data Documentation

## use_umeyama_

template<typename PointSource, typename PointTarget, typename Scalar = float>

bool pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::use_umeyama_

protected

Definition at line 153 of file transformation_estimation_svd.h.

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

- /build/pcl-OilVEB/pcl-1.8.1+dfsg1/registration/include/pcl/registration/transformation_estimation_svd.h
- /build/pcl-OilVEB/pcl-1.8.1+dfsg1/registration/include/pcl/registration/impl/transformation_estimation_svd.hpp