42 #include <pcl/pcl_base.h>
43 #include <pcl/features/feature.h>
44 #include <pcl/point_representation.h>
45 #include <pcl/common/norms.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> >;
92 shared_ptr<std::vector<int> > &output_indices);
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>
FeatureRepresentationConstPtr const getPointRepresentation()
Get a pointer to the feature representation used when converting features into k-D vectors...
void determinePersistentFeatures(FeatureCloud &output_features, shared_ptr< std::vector< int > > &output_indices)
Central function that computes the persistent features.
~MultiscaleFeaturePersistence()
Empty destructor.
void setScalesVector(std::vector< float > &scale_values)
Method for setting the scale parameters for the algorithm.
shared_ptr< PointCloud< PointT > > Ptr
FeatureEstimatorPtr getFeatureEstimator()
Getter method for the feature estimator.
shared_ptr< MultiscaleFeaturePersistence< PointSource, PointFeature > > Ptr
std::vector< float > getScalesVector()
Method for getting the scale parameters vector.
void setPointRepresentation(const FeatureRepresentationConstPtr &feature_representation)
Provide a pointer to the feature representation to use to convert features to k-D vectors...
NormType
Enum that defines all the types of norms available.
void setDistanceMetric(NormType distance_metric)
Method for setting the distance metric that will be used for computing the difference between feature...
MultiscaleFeaturePersistence()
Empty constructor.
void computeFeaturesAtAllScales()
Method that calls computeFeatureAtScale () for each scale parameter.
void setFeatureEstimator(FeatureEstimatorPtr feature_estimator)
Setter method for the feature estimator.
shared_ptr< const PointRepresentation< PointT > > ConstPtr
typename pcl::Feature< PointSource, PointFeature >::Ptr FeatureEstimatorPtr
pcl::PointCloud< PointFeature > FeatureCloud
PointCloud represents the base class in PCL for storing collections of 3D points. ...
shared_ptr< const MultiscaleFeaturePersistence< PointSource, PointFeature > > ConstPtr
Generic class for extracting the persistent features from an input point cloud It can be given any Fe...
typename pcl::PointCloud< PointFeature >::Ptr FeatureCloudPtr
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 vector...
void setAlpha(float alpha)
Sets the alpha parameter.
typename pcl::PointRepresentation< PointFeature >::ConstPtr FeatureRepresentationConstPtr
shared_ptr< Feature< PointInT, PointOutT > > Ptr