41 #ifndef PCL_FEATURES_CVFH_H_
42 #define PCL_FEATURES_CVFH_H_
44 #include <pcl/features/feature.h>
45 #include <pcl/features/vfh.h>
46 #include <pcl/search/pcl_search.h>
47 #include <pcl/common/common.h>
63 template<
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::VFHSignature308>
67 typedef boost::shared_ptr<CVFHEstimation<PointInT, PointNT, PointOutT> >
Ptr;
68 typedef boost::shared_ptr<const CVFHEstimation<PointInT, PointNT, PointOutT> >
ConstPtr;
84 vpx_ (0), vpy_ (0), vpz_ (0),
86 normalize_bins_ (false),
87 curv_threshold_ (0.03f),
88 cluster_tolerance_ (leaf_size_ * 3),
89 eps_angle_threshold_ (0.125f),
91 radius_normals_ (leaf_size_ * 3),
109 std::vector<int> &indices_in,
float threshold);
130 radius_normals_ = radius_normals;
173 cluster_tolerance_ = d;
182 eps_angle_threshold_ = d;
209 normalize_bins_ = normalize;
222 float vpx_, vpy_, vpz_;
230 bool normalize_bins_;
233 float curv_threshold_;
236 float cluster_tolerance_;
239 float eps_angle_threshold_;
247 float radius_normals_;
276 std::vector<pcl::PointIndices> &clusters,
double eps_angle,
277 unsigned int min_pts_per_cluster = 1,
278 unsigned int max_pts_per_cluster = (std::numeric_limits<int>::max) ());
288 #ifdef PCL_NO_PRECOMPILE
289 #include <pcl/features/impl/cvfh.hpp>
292 #endif //#ifndef PCL_FEATURES_CVFH_H_
int k_
The number of K nearest neighbors to use for each point.
std::vector< Eigen::Vector3f > dominant_normals_
Normal centroids that were used to compute different CVFH descriptors.
void setClusterTolerance(float d)
Sets max.
boost::shared_ptr< pcl::search::Search< PointT > > Ptr
void setCurvatureThreshold(float d)
Sets curvature threshold for removing normals.
VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...
std::string feature_name_
The feature name.
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 getCentroidClusters(std::vector< Eigen::Vector3f > ¢roids)
Get the centroids used to compute different CVFH descriptors.
boost::shared_ptr< CVFHEstimation< PointInT, PointNT, PointOutT > > Ptr
Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
pcl::search::Search< PointNormal >::Ptr KdTreePtr
pcl::VFHEstimation< PointInT, PointNT, pcl::VFHSignature308 > VFHEstimator
boost::shared_ptr< const CVFHEstimation< PointInT, PointNT, PointOutT > > ConstPtr
CVFHEstimation estimates the Clustered Viewpoint Feature Histogram (CVFH) descriptor for a given poin...
void setNormalizeBins(bool normalize)
Sets wether if the CVFH signatures should be normalized or not.
void setMinPoints(size_t min)
Set minimum amount of points for a cluster to be considered.
void getViewPoint(float &vpx, float &vpy, float &vpz)
Get the viewpoint.
double search_radius_
The nearest neighbors search radius for each point.
CVFHEstimation()
Empty constructor.
void setViewPoint(float vpx, float vpy, float vpz)
Set the viewpoint.
std::vector< Eigen::Vector3f > centroids_dominant_orientations_
Centroids that were used to compute different CVFH descriptors.
void compute(PointCloudOut &output)
Overloaded computed method from pcl::Feature.
void setRadiusNormals(float radius_normals)
Set the radius used to compute normals.
Feature represents the base feature class.
void setEPSAngleThreshold(float d)
Sets max.
PointCloud represents the base class in PCL for storing collections of 3D points. ...
void getCentroidNormalClusters(std::vector< Eigen::Vector3f > ¢roids)
Get the normal centroids used to compute different CVFH descriptors.