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_
void setRadiusNormals(float radius_normals)
Set the radius used to compute normals.
CVFHEstimation estimates the Clustered Viewpoint Feature Histogram (CVFH) descriptor for a given poin...
pcl::VFHEstimation< PointInT, PointNT, pcl::VFHSignature308 > VFHEstimator
std::string feature_name_
The feature name.
CVFHEstimation()
Empty constructor.
Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
int k_
The number of K nearest neighbors to use for each point.
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 setEPSAngleThreshold(float d)
Sets max.
void getCentroidClusters(std::vector< Eigen::Vector3f > ¢roids)
Get the centroids used to compute different CVFH descriptors.
boost::shared_ptr< const CVFHEstimation< PointInT, PointNT, PointOutT > > ConstPtr
void setCurvatureThreshold(float d)
Sets curvature threshold for removing normals.
boost::shared_ptr< CVFHEstimation< PointInT, PointNT, PointOutT > > Ptr
void setNormalizeBins(bool normalize)
Sets wether if the CVFH signatures should be normalized or not.
boost::shared_ptr< pcl::search::Search< PointT > > Ptr
std::vector< Eigen::Vector3f > dominant_normals_
Normal centroids that were used to compute different CVFH descriptors.
VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...
void getViewPoint(float &vpx, float &vpy, float &vpz)
Get the viewpoint.
PointCloud represents the base class in PCL for storing collections of 3D points. ...
pcl::search::Search< PointNormal >::Ptr KdTreePtr
void getCentroidNormalClusters(std::vector< Eigen::Vector3f > ¢roids)
Get the normal centroids used to compute different CVFH descriptors.
void compute(PointCloudOut &output)
Overloaded computed method from pcl::Feature.
Feature represents the base feature class.
std::vector< Eigen::Vector3f > centroids_dominant_orientations_
Centroids that were used to compute different CVFH descriptors.
void setMinPoints(size_t min)
Set minimum amount of points for a cluster to be considered.
void setViewPoint(float vpx, float vpy, float vpz)
Set the viewpoint.
double search_radius_
The nearest neighbors search radius for each point.
void setClusterTolerance(float d)
Sets max.