43 #include <pcl/features/feature.h>
44 #include <pcl/features/vfh.h>
45 #include <pcl/search/pcl_search.h>
62 template<
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::VFHSignature308>
66 using Ptr = shared_ptr<CVFHEstimation<PointInT, PointNT, PointOutT> >;
67 using ConstPtr = shared_ptr<const CVFHEstimation<PointInT, PointNT, PointOutT> >;
83 vpx_ (0), vpy_ (0), vpz_ (0),
85 normalize_bins_ (false),
86 curv_threshold_ (0.03f),
87 cluster_tolerance_ (leaf_size_ * 3),
88 eps_angle_threshold_ (0.125f),
90 radius_normals_ (leaf_size_ * 3)
107 std::vector<int> &indices_in,
float threshold);
128 radius_normals_ = radius_normals;
148 getCentroidClusters (std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> > & centroids)
161 centroids.push_back (normal);
171 cluster_tolerance_ = d;
180 eps_angle_threshold_ = d;
207 normalize_bins_ = normalize;
220 float vpx_, vpy_, vpz_;
228 bool normalize_bins_;
231 float curv_threshold_;
234 float cluster_tolerance_;
237 float eps_angle_threshold_;
242 std::size_t min_points_;
245 float radius_normals_;
274 std::vector<pcl::PointIndices> &clusters,
double eps_angle,
275 unsigned int min_pts_per_cluster = 1,
276 unsigned int max_pts_per_cluster = (std::numeric_limits<int>::max) ());
286 #ifdef PCL_NO_PRECOMPILE
287 #include <pcl/features/impl/cvfh.hpp>
CVFHEstimation estimates the Clustered Viewpoint Feature Histogram (CVFH) descriptor for a given poin...
std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > centroids_dominant_orientations_
Centroids that were used to compute different CVFH descriptors.
void setEPSAngleThreshold(float d)
Sets max.
shared_ptr< CVFHEstimation< PointInT, PointNT, PointOutT > > Ptr
void setMinPoints(std::size_t min)
Set minimum amount of points for a cluster to be considered.
typename Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
shared_ptr< const CVFHEstimation< PointInT, PointNT, PointOutT > > ConstPtr
std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > dominant_normals_
Normal centroids that were used to compute different CVFH descriptors.
void getCentroidNormalClusters(std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > ¢roids)
Get the normal centroids used to compute different CVFH descriptors.
void setNormalizeBins(bool normalize)
Sets whether if the CVFH signatures should be normalized or not.
void setCurvatureThreshold(float d)
Sets curvature threshold for removing normals.
void setRadiusNormals(float radius_normals)
Set the radius used to compute normals.
void setViewPoint(float vpx, float vpy, float vpz)
Set the viewpoint.
void getCentroidClusters(std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > ¢roids)
Get the centroids used to compute different CVFH descriptors.
typename pcl::search::Search< PointNormal >::Ptr KdTreePtr
void setClusterTolerance(float d)
Sets max.
void getViewPoint(float &vpx, float &vpy, float &vpz)
Get the viewpoint.
CVFHEstimation()
Empty constructor.
void filterNormalsWithHighCurvature(const pcl::PointCloud< PointNT > &cloud, std::vector< int > &indices_to_use, std::vector< int > &indices_out, std::vector< int > &indices_in, float threshold)
Removes normals with high curvature caused by real edges or noisy data.
void compute(PointCloudOut &output)
Overloaded computed method from pcl::Feature.
Feature represents the base feature class.
double search_radius_
The nearest neighbors search radius for each point.
int k_
The number of K nearest neighbors to use for each point.
std::string feature_name_
The feature name.
VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...
shared_ptr< pcl::search::Search< PointT > > Ptr
Define standard C methods and C++ classes that are common to all methods.