Public Types | Public Member Functions | Private Member Functions | Private Attributes
pcl::MultiscaleFeaturePersistence< PointSource, PointFeature > Class Template Reference

Generic class for extracting the persistent features from an input point cloud It can be given any Feature estimator instance and will compute the features of the input over a multiscale representation of the cloud and output the unique ones over those scales. More...

#include <multiscale_feature_persistence.h>

Inheritance diagram for pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef pcl::PointCloud
< PointFeature > 
FeatureCloud
typedef pcl::PointCloud
< PointFeature >::Ptr 
FeatureCloudPtr
typedef pcl::Feature
< PointSource, PointFeature >
::Ptr 
FeatureEstimatorPtr
typedef boost::shared_ptr
< const
pcl::PointRepresentation
< PointFeature > > 
FeatureRepresentationConstPtr

Public Member Functions

void computeFeaturesAtAllScales ()
 Method that calls computeFeatureAtScale () for each scale parameter.
void determinePersistentFeatures (FeatureCloud &output_features, boost::shared_ptr< std::vector< int > > &output_indices)
 Central function that computes the persistent features.
float getAlpha ()
 Get the value of the alpha parameter.
NormType getDistanceMetric ()
 Returns the distance metric that is currently used to calculate the difference between feature vectors.
FeatureEstimatorPtr getFeatureEstimator ()
 Getter method for the feature estimator.
FeatureRepresentationConstPtr const getPointRepresentation ()
 Get a pointer to the feature representation used when converting features into k-D vectors.
std::vector< float > getScalesVector ()
 Method for getting the scale parameters vector.
 MultiscaleFeaturePersistence ()
 Empty constructor.
void setAlpha (float alpha)
 Sets the alpha parameter.
void setDistanceMetric (NormType distance_metric)
 Method for setting the distance metric that will be used for computing the difference between feature vectors.
void setFeatureEstimator (FeatureEstimatorPtr feature_estimator)
 Setter method for the feature estimator.
void setPointRepresentation (const FeatureRepresentationConstPtr &feature_representation)
 Provide a pointer to the feature representation to use to convert features to k-D vectors.
void setScalesVector (std::vector< float > &scale_values)
 Method for setting the scale parameters for the algorithm.

Private Member Functions

void calculateMeanFeature ()
 Method that averages all the features at all scales in order to obtain the global mean feature; this value is stored in the mean_feature field.
virtual void computeFeatureAtScale (float &scale, FeatureCloudPtr &features)
 Method to compute the features for the point cloud at the given scale.
float distanceBetweenFeatures (const std::vector< float > &a, const std::vector< float > &b)
 Function that calculates the scalar difference between two features.
void extractUniqueFeatures ()
 Selects the so-called 'unique' features from the cloud of features at each level. These features are the ones that fall outside the standard deviation * alpha_.
bool initCompute ()
 Checks if all the necessary input was given and the computations can successfully start.

Private Attributes

float alpha_
 Parameter that determines if a feature is to be considered unique or not.
NormType distance_metric_
 Parameter that determines which distance metric is to be usedto calculate the difference between feature vectors.
FeatureEstimatorPtr feature_estimator_
 the feature estimator that will be used to determine the feature set at each scale level
FeatureRepresentationConstPtr feature_representation_
std::vector< FeatureCloudPtrfeatures_at_scale_
std::vector< std::vector
< std::vector< float > > > 
features_at_scale_vectorized_
std::vector< float > mean_feature_
std::vector< float > scale_values_
 The general parameter for determining each scale level.
std::vector< std::list< size_t > > unique_features_indices_
 Two structures in which to hold the results of the unique feature extraction process. They are superfluous with respect to each other, but improve the time performance of the algorithm.
std::vector< std::vector< bool > > unique_features_table_

Detailed Description

template<typename PointSource, typename PointFeature>
class pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >

Generic class for extracting the persistent features from an input point cloud It can be given any Feature estimator instance and will compute the features of the input over a multiscale representation of the cloud and output the unique ones over those scales.

Please refer to the following publication for more details: Radu Bogdan Rusu, Zoltan Csaba Marton, Nico Blodow, and Michael Beetz Persistent Point Feature Histograms for 3D Point Clouds Proceedings of the 10th International Conference on Intelligent Autonomous Systems (IAS-10) 2008, Baden-Baden, Germany

Author:
Alexandru-Eugen Ichim

Definition at line 62 of file multiscale_feature_persistence.h.


Member Typedef Documentation

template<typename PointSource, typename PointFeature>
typedef pcl::PointCloud<PointFeature> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureCloud

Definition at line 65 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
typedef pcl::PointCloud<PointFeature>::Ptr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureCloudPtr

Definition at line 66 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
typedef pcl::Feature<PointSource, PointFeature>::Ptr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureEstimatorPtr

Definition at line 67 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
typedef boost::shared_ptr<const pcl::PointRepresentation <PointFeature> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureRepresentationConstPtr

Definition at line 68 of file multiscale_feature_persistence.h.


Constructor & Destructor Documentation

template<typename PointSource , typename PointFeature >
pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::MultiscaleFeaturePersistence ( )

Empty constructor.

Definition at line 45 of file multiscale_feature_persistence.hpp.


Member Function Documentation

template<typename PointSource , typename PointFeature >
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::calculateMeanFeature ( ) [private]

Method that averages all the features at all scales in order to obtain the global mean feature; this value is stored in the mean_feature field.

Definition at line 135 of file multiscale_feature_persistence.hpp.

template<typename PointSource , typename PointFeature >
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::computeFeatureAtScale ( float &  scale,
FeatureCloudPtr features 
) [private, virtual]

Method to compute the features for the point cloud at the given scale.

Definition at line 116 of file multiscale_feature_persistence.hpp.

template<typename PointSource , typename PointFeature >
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::computeFeaturesAtAllScales ( )

Method that calls computeFeatureAtScale () for each scale parameter.

Definition at line 91 of file multiscale_feature_persistence.hpp.

template<typename PointSource , typename PointFeature >
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::determinePersistentFeatures ( FeatureCloud output_features,
boost::shared_ptr< std::vector< int > > &  output_indices 
)

Central function that computes the persistent features.

Parameters:
output_featuresa cloud containing the persistent features
output_indicesvector containing the indices of the points in the input cloud that have persistent features, under a one-to-one correspondence with the output_features cloud

Definition at line 193 of file multiscale_feature_persistence.hpp.

template<typename PointSource , typename PointFeature >
float pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::distanceBetweenFeatures ( const std::vector< float > &  a,
const std::vector< float > &  b 
) [private]

Function that calculates the scalar difference between two features.

Returns:
the difference as a floating point type

Definition at line 126 of file multiscale_feature_persistence.hpp.

template<typename PointSource , typename PointFeature >
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::extractUniqueFeatures ( ) [private]

Selects the so-called 'unique' features from the cloud of features at each level. These features are the ones that fall outside the standard deviation * alpha_.

Definition at line 156 of file multiscale_feature_persistence.hpp.

template<typename PointSource, typename PointFeature>
float pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getAlpha ( ) [inline]

Get the value of the alpha parameter.

Definition at line 128 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
NormType pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getDistanceMetric ( ) [inline]

Returns the distance metric that is currently used to calculate the difference between feature vectors.

Definition at line 138 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
FeatureEstimatorPtr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getFeatureEstimator ( ) [inline]

Getter method for the feature estimator.

Definition at line 108 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
FeatureRepresentationConstPtr const pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getPointRepresentation ( ) [inline]

Get a pointer to the feature representation used when converting features into k-D vectors.

Definition at line 118 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
std::vector<float> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getScalesVector ( ) [inline]

Method for getting the scale parameters vector.

Definition at line 96 of file multiscale_feature_persistence.h.

template<typename PointSource , typename PointFeature >
bool pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::initCompute ( ) [private]

Checks if all the necessary input was given and the computations can successfully start.

Reimplemented from pcl::PCLBase< PointSource >.

Definition at line 65 of file multiscale_feature_persistence.hpp.

template<typename PointSource, typename PointFeature>
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setAlpha ( float  alpha) [inline]

Sets the alpha parameter.

Parameters:
alphavalue to replace the current alpha with

Definition at line 124 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setDistanceMetric ( NormType  distance_metric) [inline]

Method for setting the distance metric that will be used for computing the difference between feature vectors.

Parameters:
distance_metricthe new distance metric chosen from the NormType enum

Definition at line 134 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setFeatureEstimator ( FeatureEstimatorPtr  feature_estimator) [inline]

Setter method for the feature estimator.

Parameters:
feature_estimatorpointer to the feature estimator instance that will be used
Note:
the feature estimator instance should already have the input data given beforehand and everything set, ready to be given the compute () command

Definition at line 104 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setPointRepresentation ( const FeatureRepresentationConstPtr feature_representation) [inline]

Provide a pointer to the feature representation to use to convert features to k-D vectors.

Parameters:
feature_representationthe const boost shared pointer to a PointRepresentation

Definition at line 114 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setScalesVector ( std::vector< float > &  scale_values) [inline]

Method for setting the scale parameters for the algorithm.

Parameters:
scale_valuesvector of scales to determine the characteristic of each scaling step

Definition at line 92 of file multiscale_feature_persistence.h.


Member Data Documentation

template<typename PointSource, typename PointFeature>
float pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::alpha_ [private]

Parameter that determines if a feature is to be considered unique or not.

Definition at line 177 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
NormType pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::distance_metric_ [private]

Parameter that determines which distance metric is to be usedto calculate the difference between feature vectors.

Definition at line 180 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
FeatureEstimatorPtr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::feature_estimator_ [private]

the feature estimator that will be used to determine the feature set at each scale level

Definition at line 183 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
FeatureRepresentationConstPtr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::feature_representation_ [private]

Definition at line 188 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
std::vector<FeatureCloudPtr> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::features_at_scale_ [private]

Definition at line 185 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
std::vector<std::vector<std::vector<float> > > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::features_at_scale_vectorized_ [private]

Definition at line 186 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
std::vector<float> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::mean_feature_ [private]

Definition at line 187 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
std::vector<float> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::scale_values_ [private]

The general parameter for determining each scale level.

Definition at line 174 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
std::vector<std::list<size_t> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::unique_features_indices_ [private]

Two structures in which to hold the results of the unique feature extraction process. They are superfluous with respect to each other, but improve the time performance of the algorithm.

Definition at line 193 of file multiscale_feature_persistence.h.

template<typename PointSource, typename PointFeature>
std::vector<std::vector<bool> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::unique_features_table_ [private]

Definition at line 194 of file multiscale_feature_persistence.h.


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


pcl
Author(s): Open Perception
autogenerated on Mon Oct 6 2014 03:19:40