42 #include <pcl/pcl_base.h>
43 #include <pcl/features/feature.h>
44 #include <pcl/point_representation.h>
62 template <
typename Po
intSource,
typename Po
intFeature>
66 using Ptr = shared_ptr<MultiscaleFeaturePersistence<PointSource, PointFeature> >;
67 using ConstPtr = shared_ptr<const MultiscaleFeaturePersistence<PointSource, PointFeature> >;
98 setScalesVector (std::vector<float> &scale_values) { scale_values_ = scale_values; }
101 inline std::vector<float>
155 computeFeatureAtScale (
float &scale,
163 distanceBetweenFeatures (
const std::vector<float> &a,
164 const std::vector<float> &b);
170 calculateMeanFeature ();
176 extractUniqueFeatures ();
180 std::vector<float> scale_values_;
191 std::vector<FeatureCloudPtr> features_at_scale_;
192 std::vector<std::vector<std::vector<float> > > features_at_scale_vectorized_;
193 std::vector<float> mean_feature_;
199 std::vector<std::list<std::size_t> > unique_features_indices_;
200 std::vector<std::vector<bool> > unique_features_table_;
204 #ifdef PCL_NO_PRECOMPILE
205 #include <pcl/features/impl/multiscale_feature_persistence.hpp>
shared_ptr< Feature< PointInT, PointOutT > > Ptr
Generic class for extracting the persistent features from an input point cloud It can be given any Fe...
std::vector< float > getScalesVector()
Method for getting the scale parameters vector.
void setFeatureEstimator(FeatureEstimatorPtr feature_estimator)
Setter method for the feature estimator.
shared_ptr< const MultiscaleFeaturePersistence< PointSource, PointFeature > > ConstPtr
void determinePersistentFeatures(FeatureCloud &output_features, pcl::IndicesPtr &output_indices)
Central function that computes the persistent features.
typename pcl::Feature< PointSource, PointFeature >::Ptr FeatureEstimatorPtr
FeatureEstimatorPtr getFeatureEstimator()
Getter method for the feature estimator.
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...
void setScalesVector(std::vector< float > &scale_values)
Method for setting the scale parameters for the algorithm.
void computeFeaturesAtAllScales()
Method that calls computeFeatureAtScale () for each scale parameter.
NormType getDistanceMetric()
Returns the distance metric that is currently used to calculate the difference between feature vector...
typename pcl::PointRepresentation< PointFeature >::ConstPtr FeatureRepresentationConstPtr
float getAlpha()
Get the value of the alpha parameter.
void setPointRepresentation(const FeatureRepresentationConstPtr &feature_representation)
Provide a pointer to the feature representation to use to convert features to k-D vectors.
~MultiscaleFeaturePersistence() override=default
Empty destructor.
MultiscaleFeaturePersistence()
Empty constructor.
typename pcl::PointCloud< PointFeature >::Ptr FeatureCloudPtr
shared_ptr< MultiscaleFeaturePersistence< PointSource, PointFeature > > Ptr
FeatureRepresentationConstPtr const getPointRepresentation()
Get a pointer to the feature representation used when converting features into k-D vectors.
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointT > > Ptr
shared_ptr< const PointRepresentation< PointT > > ConstPtr
NormType
Enum that defines all the types of norms available.
shared_ptr< Indices > IndicesPtr
Define standard C methods to calculate different norms.