Point Cloud Library (PCL)  1.9.1-dev
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions
pcl::PyramidFeatureHistogram< PointFeature > Class Template Reference

Class that compares two sets of features by using a multiscale representation of the features inside a pyramid. More...

#include <pcl/registration/pyramid_feature_matching.h>

+ Inheritance diagram for pcl::PyramidFeatureHistogram< PointFeature >:

Public Types

using Ptr = boost::shared_ptr< PyramidFeatureHistogram< PointFeature > >
 
using PyramidFeatureHistogramPtr = Ptr
 
using FeatureRepresentationConstPtr = boost::shared_ptr< const pcl::PointRepresentation< PointFeature > >
 
- Public Types inherited from pcl::PCLBase< PointFeature >
using PointCloud = pcl::PointCloud< PointFeature >
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using PointIndicesPtr = boost::shared_ptr< PointIndices >
 
using PointIndicesConstPtr = boost::shared_ptr< PointIndices const >
 

Public Member Functions

 PyramidFeatureHistogram ()
 Empty constructor that instantiates the feature representation variable. More...
 
void setInputDimensionRange (std::vector< std::pair< float, float > > &dimension_range_input)
 Method for setting the input dimension range parameter. More...
 
std::vector< std::pair< float, float > > getInputDimensionRange ()
 Method for retrieving the input dimension range vector. More...
 
void setTargetDimensionRange (std::vector< std::pair< float, float > > &dimension_range_target)
 Method to set the target dimension range parameter. More...
 
std::vector< std::pair< float, float > > getTargetDimensionRange ()
 Method for retrieving the target dimension range vector. More...
 
void setPointRepresentation (const FeatureRepresentationConstPtr &feature_representation)
 Provide a pointer to the feature representation to use to convert features to k-D vectors. More...
 
FeatureRepresentationConstPtr const getPointRepresentation ()
 Get a pointer to the feature representation used when converting features into k-D vectors. More...
 
void compute ()
 The central method for inserting the feature set inside the pyramid and obtaining the complete pyramid. More...
 
bool isComputed ()
 Checks whether the pyramid histogram has been computed. More...
 
- Public Member Functions inherited from pcl::PCLBase< PointFeature >
 PCLBase ()
 Empty constructor. More...
 
 PCLBase (const PCLBase &base)
 Copy constructor. More...
 
virtual ~PCLBase ()
 Destructor. More...
 
virtual void setInputCloud (const PointCloudConstPtr &cloud)
 Provide a pointer to the input dataset. More...
 
PointCloudConstPtr const getInputCloud () const
 Get a pointer to the input point cloud dataset. More...
 
virtual void setIndices (const IndicesPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (const IndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (const PointIndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)
 Set the indices for the points laying within an interest region of the point cloud. More...
 
IndicesPtr const getIndices ()
 Get a pointer to the vector of indices used. More...
 
IndicesConstPtr const getIndices () const
 Get a pointer to the vector of indices used. More...
 
const PointFeature & operator[] (size_t pos) const
 Override PointCloud operator[] to shorten code. More...
 

Static Public Member Functions

static float comparePyramidFeatureHistograms (const PyramidFeatureHistogramPtr &pyramid_a, const PyramidFeatureHistogramPtr &pyramid_b)
 Static method for comparing two pyramid histograms that returns a floating point value between 0 and 1, representing the similarity between the feature sets on which the two pyramid histograms are based. More...
 

Additional Inherited Members

- Protected Member Functions inherited from pcl::PCLBase< PointFeature >
bool initCompute ()
 This method should get called before starting the actual computation. More...
 
bool deinitCompute ()
 This method should get called after finishing the actual computation. More...
 
- Protected Attributes inherited from pcl::PCLBase< PointFeature >
PointCloudConstPtr input_
 The input point cloud dataset. More...
 
IndicesPtr indices_
 A pointer to the vector of point indices to use. More...
 
bool use_indices_
 Set to true if point indices are used. More...
 
bool fake_indices_
 If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More...
 

Detailed Description

template<typename PointFeature>
class pcl::PyramidFeatureHistogram< PointFeature >

Class that compares two sets of features by using a multiscale representation of the features inside a pyramid.

Each level of the pyramid offers information about the similarity of the two feature sets.

Note
Works with any Point/Feature type which has a PointRepresentation implementation
The only parameters it needs are the input dimension ranges and the output dimension ranges. The input dimension ranges represent the ranges in which each dimension of the feature vector lies. As described in the paper, a minimum inter-vector distance of sqrt(nr_dims)/2 is needed. As such, the target dimension range parameter is used in order to augment/reduce the range for each dimension in order to obtain the necessary minimal inter-vector distance and to add/subtract weight to/from certain dimensions of the feature vector.

Follows the algorithm presented in the publication: Grauman, K. & Darrell, T. The Pyramid Match Kernel: Discriminative Classification with Sets of Image Features Tenth IEEE International Conference on Computer Vision ICCV05 Volume 1 October 2005

Author
Alexandru-Eugen Ichim

Definition at line 67 of file pyramid_feature_matching.h.

Member Typedef Documentation

◆ FeatureRepresentationConstPtr

template<typename PointFeature >
using pcl::PyramidFeatureHistogram< PointFeature >::FeatureRepresentationConstPtr = boost::shared_ptr<const pcl::PointRepresentation<PointFeature> >

Definition at line 74 of file pyramid_feature_matching.h.

◆ Ptr

template<typename PointFeature >
using pcl::PyramidFeatureHistogram< PointFeature >::Ptr = boost::shared_ptr<PyramidFeatureHistogram<PointFeature> >

Definition at line 72 of file pyramid_feature_matching.h.

◆ PyramidFeatureHistogramPtr

template<typename PointFeature >
using pcl::PyramidFeatureHistogram< PointFeature >::PyramidFeatureHistogramPtr = Ptr

Definition at line 73 of file pyramid_feature_matching.h.

Constructor & Destructor Documentation

◆ PyramidFeatureHistogram()

template<typename PointFeature >
pcl::PyramidFeatureHistogram< PointFeature >::PyramidFeatureHistogram ( )

Empty constructor that instantiates the feature representation variable.

Definition at line 118 of file pyramid_feature_matching.hpp.

References pcl::PCLBase< PointFeature >::input_.

Member Function Documentation

◆ comparePyramidFeatureHistograms()

template<typename PointFeature >
float pcl::PyramidFeatureHistogram< PointFeature >::comparePyramidFeatureHistograms ( const PyramidFeatureHistogramPtr pyramid_a,
const PyramidFeatureHistogramPtr pyramid_b 
)
static

Static method for comparing two pyramid histograms that returns a floating point value between 0 and 1, representing the similarity between the feature sets on which the two pyramid histograms are based.

Parameters
pyramid_aPointer to the first pyramid to be compared (needs to be computed already).
pyramid_bPointer to the second pyramid to be compared (needs to be computed already).

Definition at line 50 of file pyramid_feature_matching.hpp.

Referenced by pcl::PyramidFeatureHistogram< PointFeature >::isComputed().

◆ compute()

template<typename PointFeature >
void pcl::PyramidFeatureHistogram< PointFeature >::compute ( )

The central method for inserting the feature set inside the pyramid and obtaining the complete pyramid.

Definition at line 276 of file pyramid_feature_matching.hpp.

References pcl::PCLBase< PointFeature >::input_.

Referenced by pcl::PyramidFeatureHistogram< PointFeature >::getPointRepresentation().

◆ getInputDimensionRange()

template<typename PointFeature >
std::vector<std::pair<float, float> > pcl::PyramidFeatureHistogram< PointFeature >::getInputDimensionRange ( )
inline

Method for retrieving the input dimension range vector.

Definition at line 89 of file pyramid_feature_matching.h.

◆ getPointRepresentation()

template<typename PointFeature >
FeatureRepresentationConstPtr const pcl::PyramidFeatureHistogram< PointFeature >::getPointRepresentation ( )
inline

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

Definition at line 110 of file pyramid_feature_matching.h.

References pcl::PyramidFeatureHistogram< PointFeature >::compute().

◆ getTargetDimensionRange()

template<typename PointFeature >
std::vector<std::pair<float, float> > pcl::PyramidFeatureHistogram< PointFeature >::getTargetDimensionRange ( )
inline

Method for retrieving the target dimension range vector.

Definition at line 100 of file pyramid_feature_matching.h.

◆ isComputed()

template<typename PointFeature >
bool pcl::PyramidFeatureHistogram< PointFeature >::isComputed ( )
inline

Checks whether the pyramid histogram has been computed.

Definition at line 118 of file pyramid_feature_matching.h.

References pcl::PyramidFeatureHistogram< PointFeature >::comparePyramidFeatureHistograms().

◆ setInputDimensionRange()

template<typename PointFeature >
void pcl::PyramidFeatureHistogram< PointFeature >::setInputDimensionRange ( std::vector< std::pair< float, float > > &  dimension_range_input)
inline

Method for setting the input dimension range parameter.

Note
Please check the PyramidHistogram class description for more details about this parameter.

Definition at line 84 of file pyramid_feature_matching.h.

◆ setPointRepresentation()

template<typename PointFeature >
void pcl::PyramidFeatureHistogram< 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 106 of file pyramid_feature_matching.h.

◆ setTargetDimensionRange()

template<typename PointFeature >
void pcl::PyramidFeatureHistogram< PointFeature >::setTargetDimensionRange ( std::vector< std::pair< float, float > > &  dimension_range_target)
inline

Method to set the target dimension range parameter.

Note
Please check the PyramidHistogram class description for more details about this parameter.

Definition at line 95 of file pyramid_feature_matching.h.


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