SampleConsensusModel represents the base model class. More...
#include <pcl/sample_consensus/sac_model.h>
Public Types | |
using | PointCloud = pcl::PointCloud< PointT > |
using | PointCloudConstPtr = typename PointCloud::ConstPtr |
using | PointCloudPtr = typename PointCloud::Ptr |
using | SearchPtr = typename pcl::search::Search< PointT >::Ptr |
using | Ptr = shared_ptr< SampleConsensusModel< PointT > > |
using | ConstPtr = shared_ptr< const SampleConsensusModel< PointT > > |
Public Member Functions | |
SampleConsensusModel (const PointCloudConstPtr &cloud, bool random=false) | |
Constructor for base SampleConsensusModel. More... |
|
SampleConsensusModel (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
Constructor for base SampleConsensusModel. More... |
|
virtual | ~SampleConsensusModel () |
Destructor for base SampleConsensusModel. More... |
|
virtual void | getSamples (int &iterations, Indices &samples) |
Get a set of random data samples and return them as point indices. More... |
|
virtual bool | computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const =0 |
Check whether the given index samples can form a valid model, compute the model coefficients from these samples and store them in model_coefficients. More... |
|
virtual void | optimizeModelCoefficients (const Indices &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const =0 |
Recompute the model coefficients using the given inlier set and return them to the user. More... |
|
virtual void | getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const =0 |
Compute all distances from the cloud data to a given model. More... |
|
virtual void | selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers)=0 |
Select all the points which respect the given model coefficients as inliers. More... |
|
virtual std::size_t | countWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold) const =0 |
Count all the points which respect the given model coefficients as inliers. More... |
|
virtual void | projectPoints (const Indices &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields=true) const =0 |
Create a new point cloud with inliers projected onto the model. More... |
|
virtual bool | doSamplesVerifyModel (const std::set< index_t > &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const =0 |
Verify whether a subset of indices verifies a given set of model coefficients. More... |
|
virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
Provide a pointer to the input dataset. More... |
|
PointCloudConstPtr | getInputCloud () const |
Get a pointer to the input point cloud dataset. More... |
|
void | setIndices (const IndicesPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... |
|
void | setIndices (const Indices &indices) |
Provide the vector of indices that represents the input data. More... |
|
IndicesPtr | getIndices () const |
Get a pointer to the vector of indices used. More... |
|
virtual SacModel | getModelType () const =0 |
Return a unique id for each type of model employed. More... |
|
const std::string & | getClassName () const |
Get a string representation of the name of this class. More... |
|
unsigned int | getSampleSize () const |
Return the size of a sample from which the model is computed. More... |
|
unsigned int | getModelSize () const |
Return the number of coefficients in the model. More... |
|
void | setRadiusLimits (const double &min_radius, const double &max_radius) |
Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius) More... |
|
void | getRadiusLimits (double &min_radius, double &max_radius) const |
Get the minimum and maximum allowable radius limits for the model as set by the user. More... |
|
void | setModelConstraints (std::function< bool(const Eigen::VectorXf &)> function) |
This can be used to impose any kind of constraint on the model, e.g. More... |
|
void | setSamplesMaxDist (const double &radius, SearchPtr search) |
Set the maximum distance allowed when drawing random samples. More... |
|
void | getSamplesMaxDist (double &radius) const |
Get maximum distance allowed when drawing random samples. More... |
|
double | computeVariance (const std::vector< double > &error_sqr_dists) const |
Compute the variance of the errors to the model. More... |
|
double | computeVariance () const |
Compute the variance of the errors to the model from the internally estimated vector of distances. More... |
|
Protected Member Functions | |
SampleConsensusModel (bool random=false) | |
Empty constructor for base SampleConsensusModel. More... |
|
void | drawIndexSample (Indices &sample) |
Fills a sample array with random samples from the indices_ vector. More... |
|
void | drawIndexSampleRadius (Indices &sample) |
Fills a sample array with one random sample from the indices_ vector and other random samples that are closer than samples_radius_. More... |
|
virtual bool | isModelValid (const Eigen::VectorXf &model_coefficients) const |
Check whether a model is valid given the user constraints. More... |
|
virtual bool | isSampleGood (const Indices &samples) const =0 |
Check if a sample of indices results in a good sample of points indices. More... |
|
int | rnd () |
Boost-based random number generator. More... |
|
Protected Attributes | |
std::string | model_name_ |
The model name. More... |
|
PointCloudConstPtr | input_ |
A boost shared pointer to the point cloud data array. More... |
|
IndicesPtr | indices_ |
A pointer to the vector of point indices to use. More... |
|
double | radius_min_ |
The minimum and maximum radius limits for the model. More... |
|
double | radius_max_ |
double | samples_radius_ |
The maximum distance of subsequent samples from the first (radius search) More... |
|
SearchPtr | samples_radius_search_ |
The search object for picking subsequent samples using radius search. More... |
|
Indices | shuffled_indices_ |
Data containing a shuffled version of the indices. More... |
|
boost::mt19937 | rng_alg_ |
Boost-based random number generator algorithm. More... |
|
std::shared_ptr< boost::uniform_int<> > | rng_dist_ |
Boost-based random number generator distribution. More... |
|
std::shared_ptr< boost::variate_generator< boost::mt19937 &, boost::uniform_int<> > > | rng_gen_ |
Boost-based random number generator. More... |
|
std::vector< double > | error_sqr_dists_ |
A vector holding the distances to the computed model. More... |
|
unsigned int | sample_size_ |
The size of a sample from which the model is computed. More... |
|
unsigned int | model_size_ |
The number of coefficients in the model. More... |
|
std::function< bool(const Eigen::VectorXf &)> | custom_model_constraints_ |
A user defined function that takes model coefficients and returns whether the model is acceptable or not. More... |
|
Static Protected Attributes | |
static const unsigned int | max_sample_checks_ = 1000 |
The maximum number of samples to try until we get a good one. More... |
|
Friends | |
class | ProgressiveSampleConsensus< PointT > |
SampleConsensusModel represents the base model class.
All sample consensus models must inherit from this class.
Definition at line 69 of file sac_model.h.
using pcl::SampleConsensusModel< PointT >::ConstPtr = shared_ptr<const SampleConsensusModel<PointT> > |
Definition at line 78 of file sac_model.h.
using pcl::SampleConsensusModel< PointT >::PointCloud = pcl::PointCloud<PointT> |
Definition at line 72 of file sac_model.h.
using pcl::SampleConsensusModel< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr |
Definition at line 73 of file sac_model.h.
using pcl::SampleConsensusModel< PointT >::PointCloudPtr = typename PointCloud::Ptr |
Definition at line 74 of file sac_model.h.
using pcl::SampleConsensusModel< PointT >::Ptr = shared_ptr<SampleConsensusModel<PointT> > |
Definition at line 77 of file sac_model.h.
using pcl::SampleConsensusModel< PointT >::SearchPtr = typename pcl::search::Search<PointT>::Ptr |
Definition at line 75 of file sac_model.h.
| inlineprotected |
Empty constructor for base SampleConsensusModel.
[in] | random | if true set the random seed to the current time, else set to 12345 (default: false) |
Definition at line 84 of file sac_model.h.
| inline |
Constructor for base SampleConsensusModel.
[in] | cloud | the input point cloud dataset |
[in] | random | if true set the random seed to the current time, else set to 12345 (default: false) |
Definition at line 107 of file sac_model.h.
| inline |
Constructor for base SampleConsensusModel.
[in] | cloud | the input point cloud dataset |
[in] | indices | a vector of point indices to be used from cloud |
[in] | random | if true set the random seed to the current time, else set to 12345 (default: false) |
Definition at line 133 of file sac_model.h.
| inlinevirtual |
Destructor for base SampleConsensusModel.
Definition at line 165 of file sac_model.h.
| pure virtual |
Check whether the given index samples can form a valid model, compute the model coefficients from these samples and store them in model_coefficients.
Pure virtual. Implementations of this function must be thread-safe.
[in] | samples | the point indices found as possible good candidates for creating a valid model |
[out] | model_coefficients | the computed model coefficients |
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelStick< PointT >, and pcl::SampleConsensusModelLine< PointT >.
| inline |
Compute the variance of the errors to the model from the internally estimated vector of distances.
The model must be computed first (or at least selectWithinDistance must be called).
Definition at line 450 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::computeVariance().
| inline |
Compute the variance of the errors to the model.
[in] | error_sqr_dists | a vector holding the distances |
Definition at line 436 of file sac_model.h.
| pure virtual |
Count all the points which respect the given model coefficients as inliers.
Pure virtual. Implementations of this function must be thread-safe.
[in] | model_coefficients | the coefficients of a model that we need to compute distances to |
[in] | threshold | a maximum admissible distance threshold for determining the inliers from the outliers |
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalPlane< PointT, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelNormalSphere< PointT, PointNT >, and pcl::SampleConsensusModelRegistration2D< PointT >.
| pure virtual |
Verify whether a subset of indices verifies a given set of model coefficients.
Pure virtual.
[in] | indices | the data indices that need to be tested against the model |
[in] | model_coefficients | the set of model coefficients |
[in] | threshold | a maximum admissible distance threshold for determining the inliers from the outliers |
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelLine< PointT >, and pcl::SampleConsensusModelRegistration< PointT >.
| inlineprotected |
Fills a sample array with random samples from the indices_ vector.
[out] | sample | the set of indices of target_ to analyze |
Definition at line 466 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getSamples().
| inlineprotected |
Fills a sample array with one random sample from the indices_ vector and other random samples that are closer than samples_radius_.
[out] | sample | the set of indices of target_ to analyze |
Definition at line 483 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getSamples().
| inline |
Get a string representation of the name of this class.
Definition at line 349 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::isModelValid().
| pure virtual |
Compute all distances from the cloud data to a given model.
Pure virtual.
[in] | model_coefficients | the coefficients of a model that we need to compute distances to |
[out] | distances | the resultant estimated distances |
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalPlane< PointT, PointNT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelNormalSphere< PointT, PointNT >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelLine< PointT >, and pcl::SampleConsensusModelRegistration2D< PointT >.
| inline |
Get a pointer to the vector of indices used.
Definition at line 341 of file sac_model.h.
| inline |
Get a pointer to the input point cloud dataset.
Definition at line 317 of file sac_model.h.
| inline |
Return the number of coefficients in the model.
Definition at line 363 of file sac_model.h.
| pure virtual |
Return a unique id for each type of model employed.
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalPlane< PointT, PointNT >, and pcl::SampleConsensusModelNormalSphere< PointT, PointNT >.
| inline |
Get the minimum and maximum allowable radius limits for the model as set by the user.
[out] | min_radius | the resultant minimum radius model |
[out] | max_radius | the resultant maximum radius model |
Definition at line 388 of file sac_model.h.
Referenced by pcl::SACSegmentation< PointT >::initSACModel(), and pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
| inlinevirtual |
Get a set of random data samples and return them as point indices.
[out] | iterations | the internal number of iterations used by SAC methods |
[out] | samples | the resultant model samples |
Definition at line 173 of file sac_model.h.
| inline |
Return the size of a sample from which the model is computed.
Definition at line 356 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getSamples().
| inline |
Get maximum distance allowed when drawing random samples.
[out] | radius | the maximum distance (L2 norm) |
Definition at line 425 of file sac_model.h.
| inlineprotectedvirtual |
Check whether a model is valid given the user constraints.
Default implementation verifies that the number of coefficients in the supplied model is as expected for this SAC model type. Specific SAC models should extend this function by checking the user constraints (if any).
[in] | model_coefficients | the set of model coefficients |
Reimplemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, and pcl::SampleConsensusModelParallelLine< PointT >.
Definition at line 527 of file sac_model.h.
| protectedpure virtual |
Check if a sample of indices results in a good sample of points indices.
Pure virtual.
[in] | samples | the resultant index samples |
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelLine< PointT >, and pcl::SampleConsensusModelRegistration2D< PointT >.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getSamples().
| pure virtual |
Recompute the model coefficients using the given inlier set and return them to the user.
Pure virtual.
[in] | inliers | the data inliers supporting the model |
[in] | model_coefficients | the initial guess for the model coefficients |
[out] | optimized_coefficients | the resultant recomputed coefficients after non-linear optimization |
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelStick< PointT >, and pcl::SampleConsensusModelLine< PointT >.
| pure virtual |
Create a new point cloud with inliers projected onto the model.
Pure virtual.
[in] | inliers | the data inliers that we want to project on the model |
[in] | model_coefficients | the coefficients of a model |
[out] | projected_points | the resultant projected points |
[in] | copy_data_fields | set to true (default) if we want the projected_points cloud to be an exact copy of the input dataset minus the point projections on the plane model |
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelLine< PointT >, and pcl::SampleConsensusModelRegistration< PointT >.
| inlineprotected |
Boost-based random number generator.
Definition at line 595 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::drawIndexSample(), and pcl::SampleConsensusModel< WeightSACPointType >::drawIndexSampleRadius().
| pure virtual |
Select all the points which respect the given model coefficients as inliers.
Pure virtual.
[in] | model_coefficients | the coefficients of a model that we need to compute distances to |
[in] | threshold | a maximum admissible distance threshold for determining the inliers from the outliers |
[out] | inliers | the resultant model inliers |
Implemented in pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalPlane< PointT, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelNormalSphere< PointT, PointNT >, and pcl::SampleConsensusModelRegistration2D< PointT >.
| inline |
Provide the vector of indices that represents the input data.
[out] | indices | the vector of indices that represents the input data. |
Definition at line 333 of file sac_model.h.
| inline |
Provide a pointer to the vector of indices that represents the input data.
[in] | indices | a pointer to the vector of indices that represents the input data. |
Definition at line 323 of file sac_model.h.
Referenced by pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, pcl::Normal, float >::selectBase().
| inlinevirtual |
Provide a pointer to the input dataset.
[in] | cloud | the const boost shared pointer to a PointCloud message |
Definition at line 300 of file sac_model.h.
Referenced by pcl::SampleConsensusModelRegistration< PointT >::setInputCloud().
| inline |
This can be used to impose any kind of constraint on the model, e.g.
that it has a specific direction, size, or anything else.
[in] | function | A function that gets model coefficients and returns whether the model is acceptable or not. |
Definition at line 399 of file sac_model.h.
| inline |
Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius)
[in] | min_radius | the minimum radius model |
[in] | max_radius | the maximum radius model |
Definition at line 375 of file sac_model.h.
Referenced by pcl::SACSegmentation< PointT >::initSACModel(), and pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
| inline |
Set the maximum distance allowed when drawing random samples.
[in] | radius | the maximum distance (L2 norm) |
search |
Definition at line 414 of file sac_model.h.
| friend |
Definition at line 430 of file sac_model.h.
| protected |
A user defined function that takes model coefficients and returns whether the model is acceptable or not.
Definition at line 601 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::isModelValid(), and pcl::SampleConsensusModel< WeightSACPointType >::setModelConstraints().
| protected |
A vector holding the distances to the computed model.
Used internally.
Definition at line 585 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::computeVariance().
| protected |
A pointer to the vector of point indices to use.
Definition at line 556 of file sac_model.h.
Referenced by pcl::SampleConsensusModelRegistration< PointT >::computeOriginalIndexMapping(), pcl::SampleConsensusModel< WeightSACPointType >::getIndices(), pcl::SampleConsensusModel< WeightSACPointType >::getSamples(), pcl::SampleConsensusModel< WeightSACPointType >::setIndices(), and pcl::SampleConsensusModel< WeightSACPointType >::setInputCloud().
| protected |
A boost shared pointer to the point cloud data array.
Definition at line 553 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::drawIndexSampleRadius(), pcl::SampleConsensusModel< WeightSACPointType >::getInputCloud(), and pcl::SampleConsensusModel< WeightSACPointType >::setInputCloud().
| staticprotected |
The maximum number of samples to try until we get a good one.
Definition at line 559 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getSamples().
| protected |
The model name.
Definition at line 550 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getClassName(), pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelPlane< PointT >::SampleConsensusModelPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >::SampleConsensusModelSphere(), and pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick().
| protected |
The number of coefficients in the model.
Every subclass should initialize this appropriately.
Definition at line 591 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getModelSize(), pcl::SampleConsensusModel< WeightSACPointType >::isModelValid(), pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelPlane< PointT >::SampleConsensusModelPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >::SampleConsensusModelSphere(), and pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick().
| protected |
| protected |
The minimum and maximum radius limits for the model.
Applicable to all models that estimate a radius.
Definition at line 564 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getRadiusLimits(), pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >::isModelValid(), and pcl::SampleConsensusModel< WeightSACPointType >::setRadiusLimits().
| protected |
Boost-based random number generator algorithm.
Definition at line 576 of file sac_model.h.
| protected |
Boost-based random number generator distribution.
Definition at line 579 of file sac_model.h.
| protected |
Boost-based random number generator.
Definition at line 582 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::rnd().
| protected |
The size of a sample from which the model is computed.
Every subclass should initialize this appropriately.
Definition at line 588 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::getSampleSize(), pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelPlane< PointT >::SampleConsensusModelPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< pcl::PointXYZRGB >::SampleConsensusModelSphere(), and pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick().
| protected |
The maximum distance of subsequent samples from the first (radius search)
Definition at line 567 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::drawIndexSampleRadius(), pcl::SampleConsensusModel< WeightSACPointType >::getSamples(), pcl::SampleConsensusModel< WeightSACPointType >::getSamplesMaxDist(), and pcl::SampleConsensusModel< WeightSACPointType >::setSamplesMaxDist().
| protected |
The search object for picking subsequent samples using radius search.
Definition at line 570 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::drawIndexSampleRadius(), and pcl::SampleConsensusModel< WeightSACPointType >::setSamplesMaxDist().
| protected |
Data containing a shuffled version of the indices.
This is used and modified when drawing samples.
Definition at line 573 of file sac_model.h.
Referenced by pcl::SampleConsensusModel< WeightSACPointType >::drawIndexSample(), pcl::SampleConsensusModel< WeightSACPointType >::drawIndexSampleRadius(), pcl::SampleConsensusModel< WeightSACPointType >::setIndices(), and pcl::SampleConsensusModel< WeightSACPointType >::setInputCloud().
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_sample_consensus_model.html