point_cloud_library / 1.12.1 / classpcl_1_1cuda_1_1_sample_consensus_model.html /

SampleConsensusModel represents the base model class. More...

#include </__w/1/s/cuda/sample_consensus/include/pcl/cuda/sample_consensus/sac_model.h>

Public Types

using PointCloud = PointCloudAOS< Storage >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using Ptr = shared_ptr< SampleConsensusModel >
using ConstPtr = shared_ptr< const SampleConsensusModel >
using Indices = typename Storage< int >::type
using IndicesPtr = shared_ptr< typename Storage< int >::type >
using IndicesConstPtr = shared_ptr< const typename Storage< int >::type >
using Coefficients = typename Storage< float >::type
using CoefficientsPtr = shared_ptr< Coefficients >
using CoefficientsConstPtr = shared_ptr< const Coefficients >
using Hypotheses = typename Storage< float4 >::type
using Samples = typename Storage< int >::type

Public Member Functions

SampleConsensusModel (const PointCloudConstPtr &cloud)
Constructor for base SampleConsensusModel. More...
virtual ~SampleConsensusModel ()
Destructor for base SampleConsensusModel. More...
virtual void getSamples (int &iterations, Indices &samples)=0
Get a set of random data samples and return them as point indices. More...
virtual bool computeModelCoefficients (const Indices &samples, Coefficients &model_coefficients)=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 bool generateModelHypotheses (Hypotheses &h, int max_iterations)=0
virtual bool generateModelHypotheses (Hypotheses &h, Samples &s, int max_iterations)=0
virtual bool isSampleInlier (IndicesPtr &inliers_stencil, Samples &samples, unsigned int &i)
virtual int selectWithinDistance (const Coefficients &model_coefficients, float threshold, IndicesPtr &inliers, IndicesPtr &inliers_stencil)=0
Select all the points which respect the given model coefficients as inliers. More...
virtual int selectWithinDistance (const Hypotheses &h, int idx, float threshold, IndicesPtr &inliers, IndicesPtr &inliers_stencil)=0
virtual int selectWithinDistance (Hypotheses &h, int idx, float threshold, IndicesPtr &inliers_stencil, float3 &centroid)=0
virtual int countWithinDistance (const Coefficients &model_coefficients, float threshold)=0
virtual int countWithinDistance (const Hypotheses &h, int idx, float threshold)=0
int deleteIndices (const IndicesPtr &indices_stencil)
int deleteIndices (const Hypotheses &h, int idx, IndicesPtr &inliers, const IndicesPtr &inliers_delete)
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...
IndicesPtr getIndices () const
Get a pointer to the vector of indices used. More...
void setRadiusLimits (float min_radius, float max_radius)
Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius) More...
void getRadiusLimits (float &min_radius, float &max_radius)
Get the minimum and maximum allowable radius limits for the model as set by the user. More...
shared_ptr< typename Storage< float4 >::type > getNormals ()
void setNormals (shared_ptr< typename Storage< float4 >::type > normals)

Protected Attributes

PointCloudConstPtr input_
A boost shared pointer to the point cloud data array. More...
shared_ptr< typename Storage< float4 >::type > normals_
IndicesPtr indices_
A pointer to the vector of point indices to use. More...
IndicesPtr indices_stencil_
A pointer to the vector of point indices (stencil) to use. More...
unsigned int nr_indices_in_stencil_
number of indices left in indices_stencil_ More...
float radius_min_
The minimum and maximum radius limits for the model. More...
float radius_max_
thrust::minstd_rand rngl_
Linear-Congruent random number generator engine. More...

Detailed Description

template<template< typename > class Storage>
class pcl::cuda::SampleConsensusModel< Storage >

SampleConsensusModel represents the base model class.

All sample consensus models must inherit from this class.

Definition at line 87 of file sac_model.h.

Member Typedef Documentation

Coefficients

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::Coefficients = typename Storage<float>::type

Definition at line 101 of file sac_model.h.

CoefficientsConstPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::CoefficientsConstPtr = shared_ptr <const Coefficients>

Definition at line 103 of file sac_model.h.

CoefficientsPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::CoefficientsPtr = shared_ptr <Coefficients>

Definition at line 102 of file sac_model.h.

ConstPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::ConstPtr = shared_ptr<const SampleConsensusModel>

Definition at line 95 of file sac_model.h.

Hypotheses

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::Hypotheses = typename Storage<float4>::type

Definition at line 105 of file sac_model.h.

Indices

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::Indices = typename Storage<int>::type

Definition at line 97 of file sac_model.h.

IndicesConstPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::IndicesConstPtr = shared_ptr<const typename Storage<int>::type>

Definition at line 99 of file sac_model.h.

IndicesPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::IndicesPtr = shared_ptr<typename Storage<int>::type>

Definition at line 98 of file sac_model.h.

PointCloud

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::PointCloud = PointCloudAOS<Storage>

Definition at line 90 of file sac_model.h.

PointCloudConstPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::PointCloudConstPtr = typename PointCloud::ConstPtr

Definition at line 92 of file sac_model.h.

PointCloudPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::PointCloudPtr = typename PointCloud::Ptr

Definition at line 91 of file sac_model.h.

Ptr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::Ptr = shared_ptr<SampleConsensusModel>

Definition at line 94 of file sac_model.h.

Samples

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel< Storage >::Samples = typename Storage<int>::type

Definition at line 107 of file sac_model.h.

Constructor & Destructor Documentation

SampleConsensusModel()

template<template< typename > class Storage>
pcl::cuda::SampleConsensusModel< Storage >::SampleConsensusModel ( const PointCloudConstPtr & cloud )
inline

Constructor for base SampleConsensusModel.

Parameters
cloud the input point cloud dataset

Definition at line 118 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::setInputCloud().

~SampleConsensusModel()

template<template< typename > class Storage>
virtual pcl::cuda::SampleConsensusModel< Storage >::~SampleConsensusModel ( )
inlinevirtual

Destructor for base SampleConsensusModel.

Definition at line 143 of file sac_model.h.

Member Function Documentation

computeModelCoefficients()

template<template< typename > class Storage>
virtual bool pcl::cuda::SampleConsensusModel< Storage >::computeModelCoefficients ( const Indices & samples,
Coefficients & model_coefficients
)
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.

Parameters
samples the point indices found as possible good candidates for creating a valid model, stored on the device
model_coefficients the computed model coefficients

Implemented in pcl::cuda::SampleConsensusModel1PointPlane< Storage >, and pcl::cuda::SampleConsensusModelPlane< Storage >.

countWithinDistance() [1/2]

template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::countWithinDistance ( const Coefficients & model_coefficients,
float threshold
)
pure virtual

countWithinDistance() [2/2]

template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::countWithinDistance ( const Hypotheses & h,
int idx,
float threshold
)
pure virtual

deleteIndices() [1/2]

template<template< typename > class Storage>
int pcl::cuda::SampleConsensusModel< Storage >::deleteIndices ( const Hypotheses & h,
int idx,
IndicesPtr & inliers,
const IndicesPtr & inliers_delete
)

deleteIndices() [2/2]

template<template< typename > class Storage>
int pcl::cuda::SampleConsensusModel< Storage >::deleteIndices ( const IndicesPtr & indices_stencil )

generateModelHypotheses() [1/2]

template<template< typename > class Storage>
virtual bool pcl::cuda::SampleConsensusModel< Storage >::generateModelHypotheses ( Hypotheses & h,
int max_iterations
)
pure virtual

generateModelHypotheses() [2/2]

template<template< typename > class Storage>
virtual bool pcl::cuda::SampleConsensusModel< Storage >::generateModelHypotheses ( Hypotheses & h,
Samples & s,
int max_iterations
)
pure virtual

getIndices()

template<template< typename > class Storage>
IndicesPtr pcl::cuda::SampleConsensusModel< Storage >::getIndices ( ) const
inline

getInputCloud()

template<template< typename > class Storage>
PointCloudConstPtr pcl::cuda::SampleConsensusModel< Storage >::getInputCloud ( ) const
inline

Get a pointer to the input point cloud dataset.

Definition at line 268 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::input_.

getNormals()

template<template< typename > class Storage>
shared_ptr<typename Storage<float4>::type> pcl::cuda::SampleConsensusModel< Storage >::getNormals ( )
inline

Definition at line 335 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::normals_.

getRadiusLimits()

template<template< typename > class Storage>
void pcl::cuda::SampleConsensusModel< Storage >::getRadiusLimits ( float & min_radius,
float & max_radius
)
inline

Get the minimum and maximum allowable radius limits for the model as set by the user.

Parameters
min_radius the resultant minimum radius model
max_radius the resultant maximum radius model

Definition at line 326 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::radius_max_, and pcl::cuda::SampleConsensusModel< Storage >::radius_min_.

getSamples()

template<template< typename > class Storage>
virtual void pcl::cuda::SampleConsensusModel< Storage >::getSamples ( int & iterations,
Indices & samples
)
pure virtual

Get a set of random data samples and return them as point indices.

Pure virtual.

Parameters
iterations the internal number of iterations used by SAC methods
samples the resultant model samples, stored on the device

Implemented in pcl::cuda::SampleConsensusModel1PointPlane< Storage >, and pcl::cuda::SampleConsensusModelPlane< Storage >.

isSampleInlier()

template<template< typename > class Storage>
virtual bool pcl::cuda::SampleConsensusModel< Storage >::isSampleInlier ( IndicesPtr & inliers_stencil,
Samples & samples,
unsigned int & i
)
inlinevirtual

Definition at line 170 of file sac_model.h.

selectWithinDistance() [1/3]

template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::selectWithinDistance ( const Coefficients & model_coefficients,
float threshold,
IndicesPtr & inliers,
IndicesPtr & inliers_stencil
)
pure virtual

Select all the points which respect the given model coefficients as inliers.

Pure virtual.

Parameters
model_coefficients the coefficients of a model that we need to compute distances to
threshold a maximum admissible distance threshold for determining the inliers from the outliers
inliers the resultant model inliers
inliers_stencil

Implemented in pcl::cuda::SampleConsensusModel1PointPlane< Storage >, and pcl::cuda::SampleConsensusModelPlane< Storage >.

selectWithinDistance() [2/3]

template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::selectWithinDistance ( const Hypotheses & h,
int idx,
float threshold,
IndicesPtr & inliers,
IndicesPtr & inliers_stencil
)
pure virtual

selectWithinDistance() [3/3]

template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::selectWithinDistance ( Hypotheses & h,
int idx,
float threshold,
IndicesPtr & inliers_stencil,
float3 & centroid
)
pure virtual

setInputCloud()

template<template< typename > class Storage>
virtual void pcl::cuda::SampleConsensusModel< Storage >::setInputCloud ( const PointCloudConstPtr & cloud )
virtual

Provide a pointer to the input dataset.

Parameters
cloud the const boost shared pointer to a PointCloud message

Referenced by pcl::cuda::SampleConsensusModel< Storage >::SampleConsensusModel().

setNormals()

template<template< typename > class Storage>
void pcl::cuda::SampleConsensusModel< Storage >::setNormals ( shared_ptr< typename Storage< float4 >::type > normals )
inline

Definition at line 338 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::normals_.

setRadiusLimits()

template<template< typename > class Storage>
void pcl::cuda::SampleConsensusModel< Storage >::setRadiusLimits ( float min_radius,
float max_radius
)
inline

Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius)

Parameters
min_radius the minimum radius model
max_radius the maximum radius model
Todo:
change this to set limits on the entire model

Definition at line 313 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::radius_max_, and pcl::cuda::SampleConsensusModel< Storage >::radius_min_.

Member Data Documentation

indices_

template<template< typename > class Storage>
IndicesPtr pcl::cuda::SampleConsensusModel< Storage >::indices_
protected

A pointer to the vector of point indices to use.

Definition at line 353 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getIndices().

indices_stencil_

template<template< typename > class Storage>
IndicesPtr pcl::cuda::SampleConsensusModel< Storage >::indices_stencil_
protected

A pointer to the vector of point indices (stencil) to use.

Definition at line 355 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getIndices().

input_

template<template< typename > class Storage>
PointCloudConstPtr pcl::cuda::SampleConsensusModel< Storage >::input_
protected

A boost shared pointer to the point cloud data array.

Definition at line 349 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getInputCloud().

normals_

template<template< typename > class Storage>
shared_ptr<typename Storage<float4>::type> pcl::cuda::SampleConsensusModel< Storage >::normals_
protected

nr_indices_in_stencil_

template<template< typename > class Storage>
unsigned int pcl::cuda::SampleConsensusModel< Storage >::nr_indices_in_stencil_
protected

number of indices left in indices_stencil_

Definition at line 357 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getIndices().

radius_max_

template<template< typename > class Storage>
float pcl::cuda::SampleConsensusModel< Storage >::radius_max_
protected

radius_min_

template<template< typename > class Storage>
float pcl::cuda::SampleConsensusModel< Storage >::radius_min_
protected

The minimum and maximum radius limits for the model.

Applicable to all models that estimate a radius.

Definition at line 362 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getRadiusLimits(), and pcl::cuda::SampleConsensusModel< Storage >::setRadiusLimits().

rngl_

template<template< typename > class Storage>
thrust::minstd_rand pcl::cuda::SampleConsensusModel< Storage >::rngl_
protected

Linear-Congruent random number generator engine.

Definition at line 365 of file sac_model.h.


The documentation for this class was generated from the following file:
  • /__w/1/s/cuda/sample_consensus/include/pcl/cuda/sample_consensus/sac_model.h

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