Point Cloud Library (PCL)
1.13.0dev

RandomSampleConsensus represents an implementation of the RANSAC (RANdom SAmple Consensus) algorithm, as described in: "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography", Martin A. More...
#include <pcl/sample_consensus/ransac.h>
Public Types  
using  Ptr = shared_ptr< RandomSampleConsensus< PointT > > 
using  ConstPtr = shared_ptr< const RandomSampleConsensus< PointT > > 
Public Types inherited from pcl::SampleConsensus< PointT >  
using  Ptr = shared_ptr< SampleConsensus< PointT > > 
using  ConstPtr = shared_ptr< const SampleConsensus< PointT > > 
Public Member Functions  
RandomSampleConsensus (const SampleConsensusModelPtr &model)  
RANSAC (RANdom SAmple Consensus) main constructor. More...  
RandomSampleConsensus (const SampleConsensusModelPtr &model, double threshold)  
RANSAC (RANdom SAmple Consensus) main constructor. More...  
bool  computeModel (int debug_verbosity_level=0) override 
Compute the actual model and find the inliers. More...  
Public Member Functions inherited from pcl::SampleConsensus< PointT >  
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 ()=default 
Destructor for base SAC. More...  
void  setDistanceThreshold (double threshold) 
Set the distance to model threshold. More...  
double  getDistanceThreshold () const 
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 () const 
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 () const 
Obtain the probability of choosing at least one sample free from outliers, as set by the user. More...  
void  setNumberOfThreads (const int nr_threads=1) 
Set the number of threads to use or turn off parallelization. More...  
int  getNumberOfThreads () const 
Get the number of threads, as set by the user. More...  
virtual bool  refineModel (const double sigma=3.0, const unsigned int max_iterations=1000) 
Refine the model found. More...  
void  getRandomSamples (const IndicesPtr &indices, std::size_t nr_samples, std::set< index_t > &indices_subset) 
Get a set of randomly selected indices. More...  
void  getModel (Indices &model) const 
Return the best model found so far. More...  
void  getInliers (Indices &inliers) const 
Return the best set of inliers found so far for this model. More...  
void  getModelCoefficients (Eigen::VectorXf &model_coefficients) const 
Return the model coefficients of the best model found so far. More...  
Additional Inherited Members  
Protected Member Functions inherited from pcl::SampleConsensus< PointT >  
double  rnd () 
Boostbased random number generator. More...  
Protected Attributes inherited from pcl::SampleConsensus< PointT >  
SampleConsensusModelPtr  sac_model_ 
The underlying data model used (i.e. More...  
Indices  model_ 
The model found after the last computeModel () as point cloud indices. More...  
Indices  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...  
int  threads_ 
The number of threads the scheduler should use, or a negative number if no parallelization is wanted. More...  
boost::mt19937  rng_alg_ 
Boostbased random number generator algorithm. More...  
std::shared_ptr< boost::uniform_01< boost::mt19937 > >  rng_ 
Boostbased random number generator distribution. More...  
RandomSampleConsensus represents an implementation of the RANSAC (RANdom SAmple Consensus) algorithm, as described in: "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography", Martin A.
Fischler and Robert C. Bolles, Comm. Of the ACM 24: 381–395, June 1981. A parallel variant is available, enable with setNumberOfThreads. Default is nonparallel.
The algorithm works as follows:
using pcl::RandomSampleConsensus< PointT >::ConstPtr = shared_ptr<const RandomSampleConsensus<PointT> > 
using pcl::RandomSampleConsensus< PointT >::Ptr = shared_ptr<RandomSampleConsensus<PointT> > 

inline 
RANSAC (RANdom SAmple Consensus) main constructor.
[in]  model  a Sample Consensus model 
Definition at line 86 of file ransac.h.
References pcl::SampleConsensus< PointT >::max_iterations_.

inline 
RANSAC (RANdom SAmple Consensus) main constructor.
[in]  model  a Sample Consensus model 
[in]  threshold  distance to model threshold 
Definition at line 97 of file ransac.h.
References pcl::SampleConsensus< PointT >::max_iterations_.

overridevirtual 
Compute the actual model and find the inliers.
[in]  debug_verbosity_level  enable/disable onscreen debug information and set the verbosity level 
Implements pcl::SampleConsensus< PointT >.
Definition at line 57 of file ransac.hpp.
Referenced by pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >::getRemainingCorrespondences(), and pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >::getRemainingCorrespondences().