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>
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.