43 #include <pcl/features/feature.h>
44 #include <pcl/features/vfh.h>
45 #include <pcl/search/search.h>
61 template<
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::VFHSignature308>
65 using Ptr = shared_ptr<CVFHEstimation<PointInT, PointNT, PointOutT> >;
66 using ConstPtr = shared_ptr<const CVFHEstimation<PointInT, PointNT, PointOutT> >;
82 vpx_ (0), vpy_ (0), vpz_ (0),
84 normalize_bins_ (false),
85 curv_threshold_ (0.03f),
86 cluster_tolerance_ (leaf_size_ * 3),
87 eps_angle_threshold_ (0.125f),
89 radius_normals_ (leaf_size_ * 3)
127 radius_normals_ = radius_normals;
147 getCentroidClusters (std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> > & centroids)
160 centroids.push_back (normal);
170 cluster_tolerance_ = d;
179 eps_angle_threshold_ = d;
206 normalize_bins_ = normalize;
219 float vpx_, vpy_, vpz_;
227 bool normalize_bins_;
230 float curv_threshold_;
233 float cluster_tolerance_;
236 float eps_angle_threshold_;
241 std::size_t min_points_;
244 float radius_normals_;
273 std::vector<pcl::PointIndices> &clusters,
double eps_angle,
274 unsigned int min_pts_per_cluster = 1,
275 unsigned int max_pts_per_cluster = (std::numeric_limits<int>::max) ());
285 #ifdef PCL_NO_PRECOMPILE
286 #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 filterNormalsWithHighCurvature(const pcl::PointCloud< PointNT > &cloud, pcl::Indices &indices_to_use, pcl::Indices &indices_out, pcl::Indices &indices_in, float threshold)
Removes normals with high curvature caused by real edges or noisy data.
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 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
IndicesAllocator<> Indices
Type used for indices in PCL.