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>
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
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 ...
void setTargetDimensionRange(std::vector< std::pair< float, float > > &dimension_range_target)
Method to set the target dimension range parameter.
std::vector< std::pair< float, float > > getInputDimensionRange()
Method for retrieving the input dimension range vector.
FeatureRepresentationConstPtr const getPointRepresentation()
Get a pointer to the feature representation used when converting features into k-D vectors...
Class that compares two sets of features by using a multiscale representation of the features inside ...
PyramidFeatureHistogram()
Empty constructor that instantiates the feature representation variable.
bool isComputed()
Checks whether the pyramid histogram has been computed.
void compute()
The central method for inserting the feature set inside the pyramid and obtaining the complete pyrami...
Ptr PyramidFeatureHistogramPtr
shared_ptr< const pcl::PointRepresentation< PointFeature > > FeatureRepresentationConstPtr
std::vector< std::pair< float, float > > getTargetDimensionRange()
Method for retrieving the target dimension range vector.
void setInputDimensionRange(std::vector< std::pair< float, float > > &dimension_range_input)
Method for setting the input dimension range parameter.