43 #include <pcl/pcl_base.h>
44 #include <pcl/point_representation.h>
66 template <
typename Po
intFeature>
72 using Ptr = shared_ptr<PyramidFeatureHistogram<PointFeature> >;
73 using ConstPtr = shared_ptr<const PyramidFeatureHistogram<PointFeature>>;
86 { dimension_range_input_ = dimension_range_input; }
89 inline std::vector<std::pair<float, float> >
97 { dimension_range_target_ = dimension_range_target; }
100 inline std::vector<std::pair<float, float> >
132 std::size_t nr_dimensions, nr_levels, nr_features;
133 std::vector<std::pair<float, float> > dimension_range_input_, dimension_range_target_;
139 initializeHistogram ();
145 convertFeatureToVector (
const PointFeature &feature,
146 std::vector<float> &feature_vector);
150 addFeature (std::vector<float> &feature);
158 at (std::vector<std::size_t> &access,
166 at (std::vector<float> &feature,
170 struct PyramidFeatureHistogramLevel
172 PyramidFeatureHistogramLevel ()
176 PyramidFeatureHistogramLevel (std::vector<std::size_t> &a_bins_per_dimension, std::vector<float> &a_bin_step) :
177 bins_per_dimension (a_bins_per_dimension),
178 bin_step (a_bin_step)
180 initializeHistogramLevel ();
184 initializeHistogramLevel ();
186 std::vector<unsigned int> hist;
187 std::vector<std::size_t> bins_per_dimension;
188 std::vector<float> bin_step;
190 std::vector<PyramidFeatureHistogramLevel> hist_levels;
194 #ifdef PCL_NO_PRECOMPILE
195 #include <pcl/registration/impl/pyramid_feature_matching.hpp>
Class that compares two sets of features by using a multiscale representation of the features inside ...
void setInputDimensionRange(std::vector< std::pair< float, float > > &dimension_range_input)
Method for setting the input dimension range parameter.
Ptr PyramidFeatureHistogramPtr
shared_ptr< const pcl::PointRepresentation< PointFeature > > FeatureRepresentationConstPtr
FeatureRepresentationConstPtr const getPointRepresentation()
Get a pointer to the feature representation used when converting features into k-D vectors.
void compute()
The central method for inserting the feature set inside the pyramid and obtaining the complete pyrami...
void setTargetDimensionRange(std::vector< std::pair< float, float > > &dimension_range_target)
Method to set the target dimension range parameter.
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 ...
bool isComputed()
Checks whether the pyramid histogram has been computed.
PyramidFeatureHistogram()
Empty constructor that instantiates the feature representation variable.
void setPointRepresentation(const FeatureRepresentationConstPtr &feature_representation)
Provide a pointer to the feature representation to use to convert features to k-D vectors.
shared_ptr< const PyramidFeatureHistogram< PointFeature > > ConstPtr
shared_ptr< PyramidFeatureHistogram< PointFeature > > Ptr
std::vector< std::pair< float, float > > getTargetDimensionRange()
Method for retrieving the target dimension range vector.
std::vector< std::pair< float, float > > getInputDimensionRange()
Method for retrieving the input dimension range vector.