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.
pcl::VFHEstimation< PointInT, PointNT, pcl::VFHSignature308 > VFHEstimator
void compute(PointCloudOut &output)
Overloaded computed method from pcl::Feature.
PointCloudNConstPtr normals_
A pointer to the input dataset that contains the point normals of the XYZ dataset.
Feature represents the base feature class.
const std::string & getClassName() const
Get a string representation of the name of this 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.
PointCloudInConstPtr surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation.
IndicesPtr indices_
A pointer to the vector of point indices to use.
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.