Loading...
Searching...
No Matches
pcl::registration::TransformationEstimationSVDScale< 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_scale.h>`

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

## Public Types

using | Ptr = shared_ptr< TransformationEstimationSVDScale< PointSource, PointTarget, Scalar > >
using | ConstPtr = shared_ptr< const TransformationEstimationSVDScale< PointSource, PointTarget, Scalar > >
using | Matrix4 = typename TransformationEstimationSVD< PointSource, PointTarget, Scalar >::Matrix4
Public Types inherited from pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >
using | Ptr = shared_ptr< TransformationEstimationSVD< PointSource, PointTarget, Scalar > >
using | ConstPtr = shared_ptr< const TransformationEstimationSVD< PointSource, PointTarget, Scalar > >
using | Matrix4 = typename TransformationEstimation< PointSource, PointTarget, Scalar >::Matrix4
Public Types inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >
using | Matrix4 = Eigen::Matrix< Scalar, 4, 4 >
using | Ptr = shared_ptr< TransformationEstimation< PointSource, PointTarget, Scalar > >
using | ConstPtr = shared_ptr< const TransformationEstimation< PointSource, PointTarget, Scalar > >

## Public Member Functions

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

## 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.
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.

## 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

## ConstPtr

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

using pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr< const TransformationEstimationSVDScale<PointSource, PointTarget, Scalar> >

Definition at line 63 of file transformation_estimation_svd_scale.h.

## Matrix4

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

using pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >::Matrix4 = typename TransformationEstimationSVD<PointSource, PointTarget, Scalar>::Matrix4

Definition at line 66 of file transformation_estimation_svd_scale.h.

## Ptr

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

using pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<TransformationEstimationSVDScale<PointSource, PointTarget, Scalar> >

Definition at line 61 of file transformation_estimation_svd_scale.h.

## Constructor & Destructor Documentation

## TransformationEstimationSVDScale()

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 71 of file transformation_estimation_svd_scale.h.

## Member Function Documentation

## getTransformationFromCorrelation()

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

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

Definition at line 49 of file transformation_estimation_svd_scale.hpp.

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

- pcl/registration/transformation_estimation_svd_scale.h
- pcl/registration/impl/transformation_estimation_svd_scale.hpp