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> >;
83 cluster_tolerance_ (leaf_size_ * 3),
85 radius_normals_ (leaf_size_ * 3)
123 radius_normals_ = radius_normals;
143 getCentroidClusters (std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> > & centroids)
156 centroids.push_back (normal);
166 cluster_tolerance_ = d;
175 eps_angle_threshold_ = d;
202 normalize_bins_ = normalize;
215 float vpx_{0.0f}, vpy_{0.0f}, vpz_{0.0f};
220 float leaf_size_{0.005f};
223 bool normalize_bins_{
false};
226 float curv_threshold_{0.03f};
229 float cluster_tolerance_;
232 float eps_angle_threshold_{0.125f};
237 std::size_t min_points_{50};
240 float radius_normals_;
269 std::vector<pcl::PointIndices> &clusters,
double eps_angle,
270 unsigned int min_pts_per_cluster = 1,
271 unsigned int max_pts_per_cluster = (std::numeric_limits<int>::max) ());
281 #ifdef PCL_NO_PRECOMPILE
282 #include <pcl/features/impl/cvfh.hpp>
void getCentroidNormalClusters(std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > ¢roids)
Get the normal centroids used to compute different CVFH descriptors.
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...
std::string feature_name_
The feature name.
CVFHEstimation()
Empty constructor.
int k_
The number of K nearest neighbors to use for each point.
void setEPSAngleThreshold(float d)
Sets max.
void setMinPoints(std::size_t min)
Set minimum amount of points for a cluster to be considered.
void setCurvatureThreshold(float d)
Sets curvature threshold for removing normals.
std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > centroids_dominant_orientations_
Centroids that were used to compute different CVFH descriptors.
typename pcl::search::Search< PointNormal >::Ptr KdTreePtr
void setNormalizeBins(bool normalize)
Sets whether if the CVFH signatures should be normalized or not.
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.
shared_ptr< const CVFHEstimation< PointInT, PointNT, PointOutT > > ConstPtr
void getCentroidClusters(std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > ¢roids)
Get the centroids used to compute different CVFH descriptors.
VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...
IndicesAllocator<> Indices
Type used for indices in PCL.
void getViewPoint(float &vpx, float &vpy, float &vpz)
Get the viewpoint.
shared_ptr< CVFHEstimation< PointInT, PointNT, PointOutT > > Ptr
void compute(PointCloudOut &output)
Overloaded computed method from pcl::Feature.
shared_ptr< pcl::search::Search< PointT > > Ptr
Feature represents the base feature class.
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.
typename Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > dominant_normals_
Normal centroids that were used to compute different CVFH descriptors.