|
Point Cloud Library (PCL) 1.15.0
|
SampleConsensus represents the base class. More...
#include <pcl/sample_consensus/sac.h>
Public Types | |
| using | Ptr = shared_ptr<SampleConsensus<T> > |
| using | ConstPtr = shared_ptr<const SampleConsensus<T> > |
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 ()=default |
| Destructor for base SAC. | |
| void | setDistanceThreshold (double threshold) |
| Set the distance to model threshold. | |
| double | getDistanceThreshold () const |
| Get the distance to model threshold, as set by the user. | |
| void | setMaxIterations (int max_iterations) |
| Set the maximum number of iterations. | |
| int | getMaxIterations () const |
| 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 () const |
| Obtain the probability of choosing at least one sample free from outliers, as set by the user. | |
| void | setNumberOfThreads (const int nr_threads=-1) |
| Set the number of threads to use or turn off parallelization. | |
| int | getNumberOfThreads () const |
| Get the number of threads, 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 IndicesPtr &indices, std::size_t nr_samples, std::set< index_t > &indices_subset) |
| Get a set of randomly selected indices. | |
| void | getModel (Indices &model) const |
| Return the best model found so far. | |
| void | getInliers (Indices &inliers) const |
| Return the best set of inliers found so far for this model. | |
| void | getModelCoefficients (Eigen::VectorXf &model_coefficients) const |
| 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. | |
| Indices | model_ |
| The model found after the last computeModel () as point cloud indices. | |
| Indices | 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. | |
| int | threads_ |
| The number of threads the scheduler should use, or a negative number if no parallelization is wanted. | |
| boost::mt19937 | rng_alg_ |
| Boost-based random number generator algorithm. | |
| std::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.
| using pcl::SampleConsensus< T >::ConstPtr = shared_ptr<const SampleConsensus<T> > |
| using pcl::SampleConsensus< T >::Ptr = shared_ptr<SampleConsensus<T> > |
|
inline |
Constructor for base SAC.
| [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 77 of file sac.h.
References iterations_, max_iterations_, probability_, rng_, rng_alg_, sac_model_, threads_, and threshold_.
|
inline |
Constructor for base SAC.
| [in] | model | a Sample Consensus model |
| [in] | threshold | distance to model threshold |
| [in] | random | if true set the random seed to the current time, else set to 12345 (default: false) |
Definition at line 98 of file sac.h.
References iterations_, max_iterations_, probability_, rng_, rng_alg_, sac_model_, threads_, and threshold_.
|
virtualdefault |
Destructor for base SAC.
|
pure virtual |
Compute the actual model.
Pure virtual.
Implemented in pcl::LeastMedianSquares< PointT >, pcl::MaximumLikelihoodSampleConsensus< PointT >, pcl::MEstimatorSampleConsensus< PointT >, pcl::ProgressiveSampleConsensus< PointT >, pcl::RandomizedMEstimatorSampleConsensus< PointT >, pcl::RandomizedRandomSampleConsensus< PointT >, and pcl::RandomSampleConsensus< PointT >.
|
inline |
Get the distance to model threshold, as set by the user.
Definition at line 143 of file sac.h.
References threshold_.
|
inline |
Return the best set of inliers found so far for this model.
| [out] | inliers | the resultant set of inliers |
Definition at line 310 of file sac.h.
References inliers_.
Referenced by pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >::getRemainingCorrespondences(), and pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >::getRemainingCorrespondences().
|
inline |
Get the maximum number of iterations, as set by the user.
Definition at line 153 of file sac.h.
References max_iterations_.
|
inline |
|
inline |
Return the model coefficients of the best model found so far.
| [out] | model_coefficients | the resultant model coefficients, as documented in Module sample_consensus |
Definition at line 316 of file sac.h.
References model_coefficients_.
Referenced by pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >::getRemainingCorrespondences(), and pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >::getRemainingCorrespondences().
|
inline |
|
inline |
Obtain the probability of choosing at least one sample free from outliers, as set by the user.
Definition at line 164 of file sac.h.
References probability_.
|
inline |
|
inline |
|
inlinevirtual |
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 |
Definition at line 189 of file sac.h.
References inliers_, model_coefficients_, sac_model_, and threshold_.
Referenced by pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >::getRemainingCorrespondences(), and pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >::getRemainingCorrespondences().
|
inlineprotected |
Boost-based random number generator.
Definition at line 354 of file sac.h.
References rng_.
Referenced by getRandomSamples().
|
inline |
Set the distance to model threshold.
| [in] | threshold | distance to model threshold |
Definition at line 139 of file sac.h.
References threshold_.
|
inline |
Set the maximum number of iterations.
| [in] | max_iterations | maximum number of iterations |
Definition at line 149 of file sac.h.
References max_iterations_.
Referenced by pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >::getRemainingCorrespondences(), and pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >::getRemainingCorrespondences().
|
inline |
Set the number of threads to use or turn off parallelization.
| [in] | nr_threads | the number of hardware threads to use (0 sets the value automatically, a negative number turns parallelization off) |
Definition at line 171 of file sac.h.
References threads_.
|
inline |
Set the desired probability of choosing at least one sample free from outliers.
| [in] | probability | the desired probability of choosing at least one sample free from outliers |
Definition at line 160 of file sac.h.
References probability_.
|
inline |
Set the Sample Consensus model to use.
| [in] | model | a Sample Consensus model |
Definition at line 120 of file sac.h.
References sac_model_.
|
protected |
The indices of the points that were chosen as inliers after the last computeModel () call.
Definition at line 326 of file sac.h.
Referenced by getInliers(), and refineModel().
|
protected |
Total number of internal loop iterations that we've done so far.
Definition at line 335 of file sac.h.
Referenced by SampleConsensus(), and SampleConsensus().
|
protected |
Maximum number of iterations before giving up.
Definition at line 341 of file sac.h.
Referenced by getMaxIterations(), SampleConsensus(), SampleConsensus(), and setMaxIterations().
|
protected |
The model found after the last computeModel () as point cloud indices.
Definition at line 323 of file sac.h.
Referenced by getModel().
|
protected |
The coefficients of our model computed directly from the model found.
Definition at line 329 of file sac.h.
Referenced by getModelCoefficients(), and refineModel().
|
protected |
Desired probability of choosing at least one sample free from outliers.
Definition at line 332 of file sac.h.
Referenced by getProbability(), SampleConsensus(), SampleConsensus(), and setProbability().
|
protected |
Boost-based random number generator distribution.
Definition at line 350 of file sac.h.
Referenced by rnd(), SampleConsensus(), and SampleConsensus().
|
protected |
Boost-based random number generator algorithm.
Definition at line 347 of file sac.h.
Referenced by SampleConsensus(), and SampleConsensus().
|
protected |
The underlying data model used (i.e.
what is it that we attempt to search for).
Definition at line 320 of file sac.h.
Referenced by getSampleConsensusModel(), refineModel(), SampleConsensus(), SampleConsensus(), and setSampleConsensusModel().
|
protected |
The number of threads the scheduler should use, or a negative number if no parallelization is wanted.
Definition at line 344 of file sac.h.
Referenced by getNumberOfThreads(), SampleConsensus(), SampleConsensus(), and setNumberOfThreads().
|
protected |
Distance to model threshold.
Definition at line 338 of file sac.h.
Referenced by getDistanceThreshold(), refineModel(), SampleConsensus(), SampleConsensus(), and setDistanceThreshold().