point_cloud_library / 1.12.1 / classpcl_1_1_sample_consensus.html /

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. 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 () 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 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 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...

Protected Member Functions

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

Protected Attributes

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_
Boost-based random number generator algorithm. More...
std::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 60 of file sac.h.

Member Typedef Documentation

ConstPtr

template<typename T >
using pcl::SampleConsensus< T >::ConstPtr = shared_ptr<const SampleConsensus<T> >

Definition at line 70 of file sac.h.

Ptr

template<typename T >
using pcl::SampleConsensus< T >::Ptr = shared_ptr<SampleConsensus<T> >

Definition at line 69 of file sac.h.

Constructor & Destructor Documentation

SampleConsensus() [1/2]

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 77 of file sac.h.

SampleConsensus() [2/2]

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 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.

~SampleConsensus()

template<typename T >
virtual pcl::SampleConsensus< T >::~SampleConsensus ( )
inlinevirtual

Destructor for base SAC.

Definition at line 133 of file sac.h.

Member Function Documentation

computeModel()

getDistanceThreshold()

template<typename T >
double pcl::SampleConsensus< T >::getDistanceThreshold ( ) const
inline

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

Definition at line 143 of file sac.h.

getInliers()

template<typename T >
void pcl::SampleConsensus< T >::getInliers ( Indices & inliers ) const
inline

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

Parameters
[out] inliers the resultant set of inliers

Definition at line 310 of file sac.h.

getMaxIterations()

template<typename T >
int pcl::SampleConsensus< T >::getMaxIterations ( ) const
inline

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

Definition at line 153 of file sac.h.

getModel()

template<typename T >
void pcl::SampleConsensus< T >::getModel ( Indices & model ) const
inline

Return the best model found so far.

Parameters
[out] model the resultant model

Definition at line 304 of file sac.h.

getModelCoefficients()

template<typename T >
void pcl::SampleConsensus< T >::getModelCoefficients ( Eigen::VectorXf & model_coefficients ) const
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 316 of file sac.h.

getNumberOfThreads()

template<typename T >
int pcl::SampleConsensus< T >::getNumberOfThreads ( ) const
inline

Get the number of threads, as set by the user.

Definition at line 175 of file sac.h.

getProbability()

template<typename T >
double pcl::SampleConsensus< T >::getProbability ( ) const
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.

getRandomSamples()

template<typename T >
void pcl::SampleConsensus< T >::getRandomSamples ( const IndicesPtr & indices,
std::size_t nr_samples,
std::set< index_t > & 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 290 of file sac.h.

getSampleConsensusModel()

template<typename T >
SampleConsensusModelPtr pcl::SampleConsensus< T >::getSampleConsensusModel ( ) const
inline

Get the Sample Consensus model used.

Definition at line 127 of file sac.h.

refineModel()

template<typename T >
virtual bool pcl::SampleConsensus< T >::refineModel ( const double sigma = 3.0,
const unsigned int max_iterations = 1000
)
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.

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 189 of file sac.h.

rnd()

template<typename T >
double pcl::SampleConsensus< T >::rnd ( )
inlineprotected

Boost-based random number generator.

Definition at line 354 of file sac.h.

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

setDistanceThreshold()

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 139 of file sac.h.

setMaxIterations()

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 149 of file sac.h.

setNumberOfThreads()

template<typename T >
void pcl::SampleConsensus< T >::setNumberOfThreads ( const int nr_threads = -1 )
inline

Set the number of threads to use or turn off parallelization.

Parameters
[in] nr_threads the number of hardware threads to use (0 sets the value automatically, a negative number turns parallelization off)
Note
Not all SAC methods have a parallel implementation. Some will ignore this setting.

Definition at line 171 of file sac.h.

setProbability()

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 160 of file sac.h.

setSampleConsensusModel()

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 120 of file sac.h.

Member Data Documentation

inliers_

template<typename T >
Indices pcl::SampleConsensus< T >::inliers_
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 pcl::SampleConsensus< WeightSACPointType >::getInliers(), and pcl::SampleConsensus< WeightSACPointType >::refineModel().

iterations_

template<typename T >
int pcl::SampleConsensus< T >::iterations_
protected

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

Definition at line 335 of file sac.h.

max_iterations_

template<typename T >
int pcl::SampleConsensus< T >::max_iterations_
protected

Maximum number of iterations before giving up.

Definition at line 341 of file sac.h.

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

model_

template<typename T >
Indices pcl::SampleConsensus< T >::model_
protected

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

Definition at line 323 of file sac.h.

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

model_coefficients_

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 329 of file sac.h.

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

probability_

template<typename T >
double pcl::SampleConsensus< T >::probability_
protected

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

Definition at line 332 of file sac.h.

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

rng_

template<typename T >
std::shared_ptr<boost::uniform_01<boost::mt19937> > pcl::SampleConsensus< T >::rng_
protected

Boost-based random number generator distribution.

Definition at line 350 of file sac.h.

Referenced by pcl::SampleConsensus< WeightSACPointType >::rnd(), and pcl::SampleConsensus< WeightSACPointType >::SampleConsensus().

rng_alg_

template<typename T >
boost::mt19937 pcl::SampleConsensus< T >::rng_alg_
protected

Boost-based random number generator algorithm.

Definition at line 347 of file sac.h.

sac_model_

template<typename T >
SampleConsensusModelPtr pcl::SampleConsensus< T >::sac_model_
protected

threads_

template<typename T >
int pcl::SampleConsensus< T >::threads_
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 pcl::SampleConsensus< WeightSACPointType >::getNumberOfThreads(), and pcl::SampleConsensus< WeightSACPointType >::setNumberOfThreads().

threshold_


The documentation for this class was generated from the following file:
  • pcl/sample_consensus/sac.h

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_sample_consensus.html