pcl::MaximumLikelihoodSampleConsensus< PointT > Class Template Reference
[Module sample_consensus]

MaximumLikelihoodSampleConsensus represents an implementation of the MLESAC (Maximum Likelihood Estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. More...

#include <pcl/sample_consensus/mlesac.h>

Inheritance diagram for pcl::MaximumLikelihoodSampleConsensus< PointT >:
Inheritance graph
[legend]
Collaboration diagram for pcl::MaximumLikelihoodSampleConsensus< PointT >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef boost::shared_ptr
< MaximumLikelihoodSampleConsensus
Ptr
typedef boost::shared_ptr
< const
MaximumLikelihoodSampleConsensus
ConstPtr

Public Member Functions

 MaximumLikelihoodSampleConsensus (const SampleConsensusModelPtr &model)
 MLESAC (Maximum Likelihood Estimator SAmple Consensus) main constructor.
 MaximumLikelihoodSampleConsensus (const SampleConsensusModelPtr &model, double threshold)
 MLESAC (Maximum Likelihood Estimator SAmple Consensus) main constructor.
bool computeModel (int debug_verbosity_level=0)
 Compute the actual model and find the inliers.
void setEMIterations (int iterations)
 Set the number of EM iterations.
int getEMIterations () const
 Get the number of EM iterations.

Protected Member Functions

double computeMedianAbsoluteDeviation (const PointCloudConstPtr &cloud, const boost::shared_ptr< std::vector< int > > &indices, double sigma)
 Compute the median absolute deviation:

\[ MAD = \sigma * median_i (| Xi - median_j(Xj) |) \]

.

void getMinMax (const PointCloudConstPtr &cloud, const boost::shared_ptr< std::vector< int > > &indices, Eigen::Vector4f &min_p, Eigen::Vector4f &max_p)
 Determine the minimum and maximum 3D bounding box coordinates for a given set of points.
void computeMedian (const PointCloudConstPtr &cloud, const boost::shared_ptr< std::vector< int > > &indices, Eigen::Vector4f &median)
 Compute the median value of a 3D point cloud using a given set point indices and return it as a Point32.

Detailed Description

template<typename PointT>
class pcl::MaximumLikelihoodSampleConsensus< PointT >

MaximumLikelihoodSampleConsensus represents an implementation of the MLESAC (Maximum Likelihood Estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S.

Torr and A. Zisserman, Computer Vision and Image Understanding, vol 78, 2000.

Note:
MLESAC is useful in situations where most of the data samples belong to the model, and a fast outlier rejection algorithm is needed.
Author:
Radu B. Rusu

Definition at line 57 of file mlesac.h.


Member Typedef Documentation

template<typename PointT >
typedef boost::shared_ptr<const MaximumLikelihoodSampleConsensus> pcl::MaximumLikelihoodSampleConsensus< PointT >::ConstPtr

Reimplemented from pcl::SampleConsensus< PointT >.

Definition at line 64 of file mlesac.h.

template<typename PointT >
typedef boost::shared_ptr<MaximumLikelihoodSampleConsensus> pcl::MaximumLikelihoodSampleConsensus< PointT >::Ptr

Reimplemented from pcl::SampleConsensus< PointT >.

Definition at line 63 of file mlesac.h.


Constructor & Destructor Documentation

template<typename PointT >
pcl::MaximumLikelihoodSampleConsensus< PointT >::MaximumLikelihoodSampleConsensus ( const SampleConsensusModelPtr &  model  )  [inline]

MLESAC (Maximum Likelihood Estimator SAmple Consensus) main constructor.

Parameters:
[in] model a Sample Consensus model

Definition at line 78 of file mlesac.h.

References pcl::SampleConsensus< PointT >::max_iterations_.

template<typename PointT >
pcl::MaximumLikelihoodSampleConsensus< PointT >::MaximumLikelihoodSampleConsensus ( const SampleConsensusModelPtr &  model,
double  threshold 
) [inline]

MLESAC (Maximum Likelihood Estimator SAmple Consensus) main constructor.

Parameters:
[in] model a Sample Consensus model
[in] threshold distance to model threshold

Definition at line 90 of file mlesac.h.

References pcl::SampleConsensus< PointT >::max_iterations_.


Member Function Documentation

template<typename PointT >
void pcl::MaximumLikelihoodSampleConsensus< PointT >::computeMedian ( const PointCloudConstPtr &  cloud,
const boost::shared_ptr< std::vector< int > > &  indices,
Eigen::Vector4f &  median 
) [inline, protected]

Compute the median value of a 3D point cloud using a given set point indices and return it as a Point32.

Parameters:
[in] cloud the point cloud data message
[in] indices the point indices
[out] median the resultant median value

Definition at line 264 of file mlesac.hpp.

Referenced by pcl::MaximumLikelihoodSampleConsensus< PointT >::computeMedianAbsoluteDeviation().

template<typename PointT >
double pcl::MaximumLikelihoodSampleConsensus< PointT >::computeMedianAbsoluteDeviation ( const PointCloudConstPtr &  cloud,
const boost::shared_ptr< std::vector< int > > &  indices,
double  sigma 
) [inline, protected]

Compute the median absolute deviation:

\[ MAD = \sigma * median_i (| Xi - median_j(Xj) |) \]

.

Note:
Sigma needs to be chosen carefully (a good starting sigma value is 1.4826)
Parameters:
[in] cloud the point cloud data message
[in] indices the set of point indices to use
[in] sigma the sigma value

Definition at line 207 of file mlesac.hpp.

References pcl::MaximumLikelihoodSampleConsensus< PointT >::computeMedian().

Referenced by pcl::MaximumLikelihoodSampleConsensus< PointT >::computeModel().

template<typename PointT >
bool pcl::MaximumLikelihoodSampleConsensus< PointT >::computeModel ( int  debug_verbosity_level = 0  )  [inline, virtual]
template<typename PointT >
int pcl::MaximumLikelihoodSampleConsensus< PointT >::getEMIterations (  )  const [inline]

Get the number of EM iterations.

Definition at line 112 of file mlesac.h.

template<typename PointT >
void pcl::MaximumLikelihoodSampleConsensus< PointT >::getMinMax ( const PointCloudConstPtr &  cloud,
const boost::shared_ptr< std::vector< int > > &  indices,
Eigen::Vector4f &  min_p,
Eigen::Vector4f &  max_p 
) [inline, protected]

Determine the minimum and maximum 3D bounding box coordinates for a given set of points.

Parameters:
[in] cloud the point cloud message
[in] indices the set of point indices to use
[out] min_p the resultant minimum bounding box coordinates
[out] max_p the resultant maximum bounding box coordinates

Definition at line 240 of file mlesac.hpp.

Referenced by pcl::MaximumLikelihoodSampleConsensus< PointT >::computeModel().

template<typename PointT >
void pcl::MaximumLikelihoodSampleConsensus< PointT >::setEMIterations ( int  iterations  )  [inline]

Set the number of EM iterations.

Parameters:
[in] iterations the number of EM iterations

Definition at line 108 of file mlesac.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends