Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Static Public Attributes
pcl::cuda::SampleConsensusModelPlane< Storage > Class Template Reference

SampleConsensusModelPlane defines a model for 3D plane segmentation. More...

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

+ Inheritance diagram for pcl::cuda::SampleConsensusModelPlane< Storage >:
+ Collaboration diagram for pcl::cuda::SampleConsensusModelPlane< Storage >:

Public Types

using PointCloud = typename SampleConsensusModel< Storage >::PointCloud
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using Indices = typename SampleConsensusModel< Storage >::Indices
 
using IndicesPtr = typename SampleConsensusModel< Storage >::IndicesPtr
 
using IndicesConstPtr = typename SampleConsensusModel< Storage >::IndicesConstPtr
 
using Coefficients = typename SampleConsensusModel< Storage >::Coefficients
 
using Hypotheses = typename SampleConsensusModel< Storage >::Hypotheses
 
using Samples = typename SampleConsensusModel< Storage >::Samples
 
using Ptr = shared_ptr< SampleConsensusModelPlane >
 
using ConstPtr = shared_ptr< const SampleConsensusModelPlane >
 
- Public Types inherited from pcl::cuda::SampleConsensusModel< Storage >
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

 SampleConsensusModelPlane (const PointCloudConstPtr &cloud)
 Constructor for base SampleConsensusModelPlane. More...
 
void getSamples (int &iterations, Indices &samples)
 Get 3 random non-collinear points as data samples and return them as point indices. More...
 
bool computeModelCoefficients (const Indices &samples, Coefficients &model_coefficients)
 Check whether the given index samples can form a valid plane model, compute the model coefficients from these samples and store them in model_coefficients. More...
 
bool generateModelHypotheses (Hypotheses &h, int max_iterations)
 
virtual bool generateModelHypotheses (Hypotheses &h, Samples &s, int max_iterations)
 
int selectWithinDistance (const Coefficients &model_coefficients, float threshold, IndicesPtr &inliers, IndicesPtr &inliers_stencil)
 Select all the points which respect the given model coefficients as inliers. More...
 
int selectWithinDistance (const Hypotheses &h, int idx, float threshold, IndicesPtr &inliers, IndicesPtr &inliers_stencil)
 
int selectWithinDistance (Hypotheses &h, int idx, float threshold, IndicesPtr &inliers_stencil, float3 &centroid)
 
int countWithinDistance (const Coefficients &model_coefficients, float threshold)
 
int countWithinDistance (const Hypotheses &h, int idx, float threshold)
 
- Public Member Functions inherited from pcl::cuda::SampleConsensusModel< Storage >
 SampleConsensusModel (const PointCloudConstPtr &cloud)
 Constructor for base SampleConsensusModel. More...
 
virtual ~SampleConsensusModel ()=default
 Destructor for base SampleConsensusModel. More...
 
virtual bool isSampleInlier (IndicesPtr &inliers_stencil, Samples &samples, unsigned int &i)
 
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)
 

Static Public Attributes

static const int MAX_ITERATIONS_COLLINEAR = 1000
 

Additional Inherited Members

- Protected Attributes inherited from pcl::cuda::SampleConsensusModel< Storage >
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::SampleConsensusModelPlane< Storage >

SampleConsensusModelPlane defines a model for 3D plane segmentation.

Definition at line 80 of file sac_model_plane.h.

Member Typedef Documentation

◆ Coefficients

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

Definition at line 95 of file sac_model_plane.h.

◆ ConstPtr

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

Definition at line 100 of file sac_model_plane.h.

◆ Hypotheses

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

Definition at line 96 of file sac_model_plane.h.

◆ Indices

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

Definition at line 91 of file sac_model_plane.h.

◆ IndicesConstPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModelPlane< Storage >::IndicesConstPtr = typename SampleConsensusModel<Storage>::IndicesConstPtr

Definition at line 93 of file sac_model_plane.h.

◆ IndicesPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModelPlane< Storage >::IndicesPtr = typename SampleConsensusModel<Storage>::IndicesPtr

Definition at line 92 of file sac_model_plane.h.

◆ PointCloud

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

Definition at line 87 of file sac_model_plane.h.

◆ PointCloudConstPtr

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

Definition at line 89 of file sac_model_plane.h.

◆ PointCloudPtr

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

Definition at line 88 of file sac_model_plane.h.

◆ Ptr

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

Definition at line 99 of file sac_model_plane.h.

◆ Samples

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

Definition at line 97 of file sac_model_plane.h.

Constructor & Destructor Documentation

◆ SampleConsensusModelPlane()

template<template< typename > class Storage>
pcl::cuda::SampleConsensusModelPlane< Storage >::SampleConsensusModelPlane ( const PointCloudConstPtr cloud)

Constructor for base SampleConsensusModelPlane.

Parameters
cloudthe input point cloud dataset

Member Function Documentation

◆ computeModelCoefficients()

template<template< typename > class Storage>
bool pcl::cuda::SampleConsensusModelPlane< Storage >::computeModelCoefficients ( const Indices samples,
Coefficients model_coefficients 
)
virtual

Check whether the given index samples can form a valid plane model, compute the model coefficients from these samples and store them in model_coefficients.

The plane coefficients are: a, b, c, d (ax+by+cz+d=0)

Parameters
samplesthe point indices found as possible good candidates for creating a valid model
model_coefficientsthe resultant model coefficients

Implements pcl::cuda::SampleConsensusModel< Storage >.

◆ countWithinDistance() [1/2]

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

◆ countWithinDistance() [2/2]

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

◆ generateModelHypotheses() [1/2]

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

◆ generateModelHypotheses() [2/2]

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

◆ getSamples()

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

Get 3 random non-collinear points as data samples and return them as point indices.

Parameters
iterationsthe internal number of iterations used by SAC methods
samplesthe resultant model samples
Note
assumes unique points!

Implements pcl::cuda::SampleConsensusModel< Storage >.

◆ selectWithinDistance() [1/3]

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

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

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

Implements pcl::cuda::SampleConsensusModel< Storage >.

◆ selectWithinDistance() [2/3]

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

◆ selectWithinDistance() [3/3]

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

Member Data Documentation

◆ MAX_ITERATIONS_COLLINEAR

template<template< typename > class Storage>
const int pcl::cuda::SampleConsensusModelPlane< Storage >::MAX_ITERATIONS_COLLINEAR = 1000
static

Definition at line 221 of file sac_model_plane.h.


The documentation for this class was generated from the following file: