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. | |
| SampleConsensus (const SampleConsensusModelPtr &model, double threshold, bool random=false) | |
| Constructor for base SAC. | |
| void | setSampleConsensusModel (const SampleConsensusModelPtr &model) |
| Set the Sample Consensus model to use. | |
| SampleConsensusModelPtr | getSampleConsensusModel () const |
| Get the Sample Consensus model used. | |
| virtual | ~SampleConsensus () |
| Destructor for base SAC. | |
| void | setDistanceThreshold (double threshold) |
| Set the distance to model threshold. | |
| double | getDistanceThreshold () |
| Get the distance to model threshold, as set by the user. | |
| void | setMaxIterations (int max_iterations) |
| Set the maximum number of iterations. | |
| int | getMaxIterations () |
| Get the maximum number of iterations, as set by the user. | |
| void | setProbability (double probability) |
| Set the desired probability of choosing at least one sample free from outliers. | |
| double | getProbability () |
| Obtain the probability of choosing at least one sample free from outliers, as set by the user. | |
| virtual bool | computeModel (int debug_verbosity_level=0)=0 |
| Compute the actual model. | |
| virtual bool | refineModel (const double sigma=3.0, const unsigned int max_iterations=1000) |
| Refine the model found. | |
| 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. | |
| void | getModel (std::vector< int > &model) |
| Return the best model found so far. | |
| void | getInliers (std::vector< int > &inliers) |
| Return the best set of inliers found so far for this model. | |
| void | getModelCoefficients (Eigen::VectorXf &model_coefficients) |
| Return the model coefficients of the best model found so far. | |
Protected Member Functions | |
| double | rnd () |
| Boost-based random number generator. | |
Protected Attributes | |
| SampleConsensusModelPtr | sac_model_ |
| The underlying data model used (i.e. | |
| std::vector< int > | model_ |
| The model found after the last computeModel () as point cloud indices. | |
| std::vector< int > | inliers_ |
| The indices of the points that were chosen as inliers after the last computeModel () call. | |
| Eigen::VectorXf | model_coefficients_ |
| The coefficients of our model computed directly from the model found. | |
| double | probability_ |
| Desired probability of choosing at least one sample free from outliers. | |
| int | iterations_ |
| Total number of internal loop iterations that we've done so far. | |
| double | threshold_ |
| Distance to model threshold. | |
| int | max_iterations_ |
| Maximum number of iterations before giving up. | |
| boost::mt19937 | rng_alg_ |
| Boost-based random number generator algorithm. | |
| boost::shared_ptr < boost::uniform_01 < boost::mt19937 > > | rng_ |
| Boost-based random number generator distribution. | |
SampleConsensus represents the base class.
All sample consensus methods must inherit from this class.
Definition at line 56 of file sac.h.
| typedef boost::shared_ptr<const SampleConsensus> pcl::SampleConsensus< T >::ConstPtr |
Reimplemented in pcl::LeastMedianSquares< PointT >, pcl::MaximumLikelihoodSampleConsensus< PointT >, pcl::MEstimatorSampleConsensus< PointT >, pcl::ProgressiveSampleConsensus< PointT >, pcl::RandomSampleConsensus< PointT >, pcl::RandomizedMEstimatorSampleConsensus< PointT >, and pcl::RandomizedRandomSampleConsensus< PointT >.
| typedef boost::shared_ptr<SampleConsensus> pcl::SampleConsensus< T >::Ptr |
Reimplemented in pcl::LeastMedianSquares< PointT >, pcl::MaximumLikelihoodSampleConsensus< PointT >, pcl::MEstimatorSampleConsensus< PointT >, pcl::ProgressiveSampleConsensus< PointT >, pcl::RandomSampleConsensus< PointT >, pcl::RandomizedMEstimatorSampleConsensus< PointT >, and pcl::RandomizedRandomSampleConsensus< PointT >.
| pcl::SampleConsensus< T >::SampleConsensus | ( | const SampleConsensusModelPtr & | model, | |
| bool | random = false | |||
| ) | [inline] |
| pcl::SampleConsensus< T >::SampleConsensus | ( | const SampleConsensusModelPtr & | model, | |
| double | threshold, | |||
| bool | random = false | |||
| ) | [inline] |
| virtual pcl::SampleConsensus< T >::~SampleConsensus | ( | ) | [inline, virtual] |
| virtual bool pcl::SampleConsensus< T >::computeModel | ( | int | debug_verbosity_level = 0 |
) | [pure virtual] |
Compute the actual model.
Pure virtual.
Implemented in pcl::LeastMedianSquares< PointT >, pcl::MaximumLikelihoodSampleConsensus< PointT >, pcl::MEstimatorSampleConsensus< PointT >, pcl::ProgressiveSampleConsensus< PointT >, pcl::RandomSampleConsensus< PointT >, pcl::RandomizedMEstimatorSampleConsensus< PointT >, and pcl::RandomizedRandomSampleConsensus< PointT >.
| double pcl::SampleConsensus< T >::getDistanceThreshold | ( | ) | [inline] |
| void pcl::SampleConsensus< T >::getInliers | ( | std::vector< int > & | inliers | ) | [inline] |
| int pcl::SampleConsensus< T >::getMaxIterations | ( | ) | [inline] |
| void pcl::SampleConsensus< T >::getModel | ( | std::vector< int > & | model | ) | [inline] |
| void pcl::SampleConsensus< T >::getModelCoefficients | ( | Eigen::VectorXf & | model_coefficients | ) | [inline] |
| double pcl::SampleConsensus< T >::getProbability | ( | ) | [inline] |
| void pcl::SampleConsensus< T >::getRandomSamples | ( | const boost::shared_ptr< std::vector< int > > & | indices, | |
| size_t | nr_samples, | |||
| std::set< int > & | indices_subset | |||
| ) | [inline] |
| SampleConsensusModelPtr pcl::SampleConsensus< T >::getSampleConsensusModel | ( | ) | const [inline] |
| 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.
| [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 |
| 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().
| void pcl::SampleConsensus< T >::setDistanceThreshold | ( | double | threshold | ) | [inline] |
| void pcl::SampleConsensus< T >::setMaxIterations | ( | int | max_iterations | ) | [inline] |
| void pcl::SampleConsensus< T >::setProbability | ( | double | probability | ) | [inline] |
| void pcl::SampleConsensus< T >::setSampleConsensusModel | ( | const SampleConsensusModelPtr & | model | ) | [inline] |
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().
int pcl::SampleConsensus< T >::iterations_ [protected] |
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().
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().
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().
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().
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 >::rnd(), and pcl::SampleConsensus< PointT >::SampleConsensus().
boost::mt19937 pcl::SampleConsensus< T >::rng_alg_ [protected] |
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().
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().