pcl::SampleConsensus< T > Class Template Referenceabstract
Module sample_consensus

SampleConsensus represents the base class. More...

`#include <pcl/sample_consensus/sac.h>`

## Public Types

typedef boost::shared_ptr< SampleConsensus > | Ptr
typedef boost::shared_ptr< const SampleConsensus > | ConstPtr

## Public Member Functions

| SampleConsensus (const SampleConsensusModelPtr &model, bool random=false)
| Constructor for base SAC. More...
| SampleConsensus (const SampleConsensusModelPtr &model, double threshold, bool random=false)
| Constructor for base SAC. More...
void | setSampleConsensusModel (const SampleConsensusModelPtr &model)
| Set the Sample Consensus model to use. More...
SampleConsensusModelPtr | getSampleConsensusModel () const
| Get the Sample Consensus model used. More...
virtual | ~SampleConsensus ()
| Destructor for base SAC. More...
void | setDistanceThreshold (double threshold)
| Set the distance to model threshold. More...
double | getDistanceThreshold ()
| Get the distance to model threshold, as set by the user. More...
void | setMaxIterations (int max_iterations)
| Set the maximum number of iterations. More...
int | getMaxIterations ()
| Get the maximum number of iterations, as set by the user. More...
void | setProbability (double probability)
| Set the desired probability of choosing at least one sample free from outliers. More...
double | getProbability ()
| Obtain the probability of choosing at least one sample free from outliers, as set by the user. More...
virtual bool | computeModel (int debug_verbosity_level=0)=0
| Compute the actual model. More...
virtual bool | refineModel (const double sigma=3.0, const unsigned int max_iterations=1000)
| Refine the model found. More...
void | getRandomSamples (const boost::shared_ptr< std::vector< int > > &indices, size_t nr_samples, std::set< int > &indices_subset)
| Get a set of randomly selected indices. More...
void | getModel (std::vector< int > &model)
| Return the best model found so far. More...
void | getInliers (std::vector< int > &inliers)
| Return the best set of inliers found so far for this model. More...
void | getModelCoefficients (Eigen::VectorXf &model_coefficients)
| Return the model coefficients of the best model found so far. More...

## Protected Member Functions

double | rnd ()
| Boost-based random number generator. More...

## Protected Attributes

SampleConsensusModelPtr | sac_model_
| The underlying data model used (i.e. More...
std::vector< int > | model_
| The model found after the last computeModel () as point cloud indices. More...
std::vector< int > | inliers_
| The indices of the points that were chosen as inliers after the last computeModel () call. More...
Eigen::VectorXf | model_coefficients_
| The coefficients of our model computed directly from the model found. More...
double | probability_
| Desired probability of choosing at least one sample free from outliers. More...
int | iterations_
| Total number of internal loop iterations that we've done so far. More...
double | threshold_
| Distance to model threshold. More...
int | max_iterations_
| Maximum number of iterations before giving up. More...
boost::mt19937 | rng_alg_
| Boost-based random number generator algorithm. More...
boost::shared_ptr< boost::uniform_01< boost::mt19937 > > | rng_
| Boost-based random number generator distribution. More...

## Detailed Description

### template<typename T>
class pcl::SampleConsensus< T >

SampleConsensus represents the base class.

All sample consensus methods must inherit from this class.

Author
  Radu Bogdan Rusu

Definition at line 56 of file sac.h.

## Member Typedef Documentation

template<typename T>

typedef boost::shared_ptr<const SampleConsensus> pcl::SampleConsensus< T >::ConstPtr

Definition at line 66 of file sac.h.

template<typename T>

typedef boost::shared_ptr<SampleConsensus> pcl::SampleConsensus< T >::Ptr

Definition at line 62 of file sac.h.

## Constructor & Destructor Documentation

template<typename T>

pcl::SampleConsensus< T >::SampleConsensus | ( | const SampleConsensusModelPtr & | model,
|  | bool | random = `false`
| ) |  |

inline

Constructor for base SAC.

Parameters

  [in] | model | a Sample Consensus model
  [in] | random | if true set the random seed to the current time, else set to 12345 (default: false)

Definition at line 72 of file sac.h.

template<typename T>

pcl::SampleConsensus< T >::SampleConsensus | ( | const SampleConsensusModelPtr & | model,
|  | double | threshold,
|  | bool | random = `false`
| ) |  |

inline

Constructor for base SAC.

Parameters

  [in] | model | a Sample Consensus model
  [in] | threshold | distance to model threshol
  [in] | random | if true set the random seed to the current time, else set to 12345 (default: false)

Definition at line 96 of file sac.h.

template<typename T>

virtual pcl::SampleConsensus< T >::~SampleConsensus | ( |  | ) |

inline virtual

Destructor for base SAC.

Definition at line 134 of file sac.h.

## Member Function Documentation

template<typename T>

virtual bool pcl::SampleConsensus< T >::computeModel | ( | int | debug_verbosity_level = `0` | ) |

pure virtual

Compute the actual model.

Pure virtual.

Implemented in pcl::MaximumLikelihoodSampleConsensus< PointT >, pcl::RandomizedMEstimatorSampleConsensus< PointT >, pcl::RandomizedRandomSampleConsensus< PointT >, pcl::MEstimatorSampleConsensus< PointT >, pcl::LeastMedianSquares< PointT >, pcl::ProgressiveSampleConsensus< PointT >, and pcl::RandomSampleConsensus< PointT >.

Referenced by pcl::SampleConsensus< PointT >::getProbability().

template<typename T>

double pcl::SampleConsensus< T >::getDistanceThreshold | ( |  | ) |

inline

Get the distance to model threshold, as set by the user.

Definition at line 144 of file sac.h.

template<typename T>

void pcl::SampleConsensus< T >::getInliers | ( | std::vector< int > & | inliers | ) |

inline

Return the best set of inliers found so far for this model.

Parameters

  [out] | inliers | the resultant set of inliers

Definition at line 300 of file sac.h.

template<typename T>

int pcl::SampleConsensus< T >::getMaxIterations | ( |  | ) |

inline

Get the maximum number of iterations, as set by the user.

Definition at line 154 of file sac.h.

template<typename T>

void pcl::SampleConsensus< T >::getModel | ( | std::vector< int > & | model | ) |

inline

Return the best model found so far.

Parameters

  [out] | model | the resultant model

Definition at line 294 of file sac.h.

template<typename T>

void pcl::SampleConsensus< T >::getModelCoefficients | ( | Eigen::VectorXf & | model_coefficients | ) |

inline

Return the model coefficients of the best model found so far.

Parameters

  [out] | model_coefficients | the resultant model coefficients, as documented in Module sample_consensus

Definition at line 306 of file sac.h.

template<typename T>

double pcl::SampleConsensus< T >::getProbability | ( |  | ) |

inline

Obtain the probability of choosing at least one sample free from outliers, as set by the user.

Definition at line 165 of file sac.h.

template<typename T>

void pcl::SampleConsensus< T >::getRandomSamples | ( | const boost::shared_ptr< std::vector< int > > & | indices,
|  | size_t | nr_samples,
|  | std::set< int > & | indices_subset
| ) |  |

inline

Get a set of randomly selected indices.

Parameters

  [in] | indices | the input indices vector
  [in] | nr_samples | the desired number of point indices to randomly select
  [out] | indices_subset | the resultant output set of randomly selected indices

Definition at line 280 of file sac.h.

template<typename T>

SampleConsensusModelPtr pcl::SampleConsensus< T >::getSampleConsensusModel | ( |  | ) | const

inline

Get the Sample Consensus model used.

Definition at line 128 of file sac.h.

template<typename T>

virtual bool pcl::SampleConsensus< T >::refineModel | ( | const double | sigma = `3.0`,
|  | const unsigned int | max_iterations = `1000`
| ) |  |

inline virtual

Refine the model found.

This loops over the model coefficients and optimizes them together with the set of inliers, until the change in the set of inliers is minimal.

Parameters

  [in] | sigma | standard deviation multiplier for considering a sample as inlier (Mahalanobis distance)
  [in] | max_iterations | the maxim number of iterations to try to refine in case the inliers keep on changing

Definition at line 179 of file sac.h.

template<typename T>

double pcl::SampleConsensus< T >::rnd | ( |  | ) |

inline protected

Boost-based random number generator.

Definition at line 341 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::getRandomSamples().

template<typename T>

void pcl::SampleConsensus< T >::setDistanceThreshold | ( | double | threshold | ) |

inline

Set the distance to model threshold.

Parameters

  [in] | threshold | distance to model threshold

Definition at line 140 of file sac.h.

template<typename T>

void pcl::SampleConsensus< T >::setMaxIterations | ( | int | max_iterations | ) |

inline

Set the maximum number of iterations.

Parameters

  [in] | max_iterations | maximum number of iterations

Definition at line 150 of file sac.h.

template<typename T>

void pcl::SampleConsensus< T >::setProbability | ( | double | probability | ) |

inline

Set the desired probability of choosing at least one sample free from outliers.

Parameters

  [in] | probability | the desired probability of choosing at least one sample free from outliers

Note
  internally, the probability is set to 99% (0.99) by default.

Definition at line 161 of file sac.h.

template<typename T>

void pcl::SampleConsensus< T >::setSampleConsensusModel | ( | const SampleConsensusModelPtr & | model | ) |

inline

Set the Sample Consensus model to use.

Parameters

  [in] | model | a Sample Consensus model

Definition at line 121 of file sac.h.

## Member Data Documentation

template<typename T>

std::vector<int> pcl::SampleConsensus< T >::inliers_

protected

The indices of the points that were chosen as inliers after the last computeModel () call.

Definition at line 316 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::getInliers(), and pcl::SampleConsensus< PointT >::refineModel().

template<typename T>

int pcl::SampleConsensus< T >::iterations_

protected

Total number of internal loop iterations that we've done so far.

Definition at line 325 of file sac.h.

template<typename T>

int pcl::SampleConsensus< T >::max_iterations_

protected

Maximum number of iterations before giving up.

Definition at line 331 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::getMaxIterations(), and pcl::SampleConsensus< PointT >::setMaxIterations().

template<typename T>

std::vector<int> pcl::SampleConsensus< T >::model_

protected

The model found after the last computeModel () as point cloud indices.

Definition at line 313 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::getModel().

template<typename T>

Eigen::VectorXf pcl::SampleConsensus< T >::model_coefficients_

protected

The coefficients of our model computed directly from the model found.

Definition at line 319 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::getModelCoefficients(), and pcl::SampleConsensus< PointT >::refineModel().

template<typename T>

double pcl::SampleConsensus< T >::probability_

protected

Desired probability of choosing at least one sample free from outliers.

Definition at line 322 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::getProbability(), and pcl::SampleConsensus< PointT >::setProbability().

template<typename T>

boost::shared_ptr<boost::uniform_01<boost::mt19937> > pcl::SampleConsensus< T >::rng_

protected

Boost-based random number generator distribution.

Definition at line 337 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::SampleConsensus().

template<typename T>

boost::mt19937 pcl::SampleConsensus< T >::rng_alg_

protected

Boost-based random number generator algorithm.

Definition at line 334 of file sac.h.

template<typename T>

SampleConsensusModelPtr pcl::SampleConsensus< T >::sac_model_

protected

The underlying data model used (i.e.

what is it that we attempt to search for).

Definition at line 310 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::getSampleConsensusModel(), pcl::SampleConsensus< PointT >::refineModel(), and pcl::SampleConsensus< PointT >::setSampleConsensusModel().

template<typename T>

double pcl::SampleConsensus< T >::threshold_

protected

Distance to model threshold.

Definition at line 328 of file sac.h.

Referenced by pcl::SampleConsensus< PointT >::getDistanceThreshold(), pcl::SampleConsensus< PointT >::refineModel(), and pcl::SampleConsensus< PointT >::setDistanceThreshold().

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

- /build/pcl-0nnAvv/pcl-1.7.2/sample_consensus/include/pcl/sample_consensus/sac.h