1 #ifndef FEATURE_ESTIMATION_H
2 #define FEATURE_ESTIMATION_H
7 #include <pcl/features/normal_3d.h>
8 #include <pcl/keypoints/sift_keypoint.h>
9 #include <pcl/features/fpfh.h>
10 #include <pcl/features/vfh.h>
11 #include <pcl/search/kdtree.h>
22 estimateSurfaceNormals (
const PointCloudPtr & input,
float radius)
29 normal_estimation.
compute (*normals);
51 detectKeypoints (
const PointCloudPtr & points,
const SurfaceNormalsPtr & normals,
52 float min_scale,
int nr_octaves,
int nr_scales_per_octave,
float min_contrast)
56 sift_detect.
setScales (min_scale, nr_octaves, nr_scales_per_octave);
60 sift_detect.
compute (keypoints_temp);
80 computeLocalDescriptors (
const PointCloudPtr & points,
const SurfaceNormalsPtr & normals,
81 const PointCloudPtr & keypoints,
float feature_radius)
90 fpfh_estimation.
compute (*local_descriptors);
92 return (local_descriptors);
104 computeGlobalDescriptor (
const PointCloudPtr & points,
const SurfaceNormalsPtr & normals)
111 vfh_estimation.
compute (*global_descriptor);
113 return (global_descriptor);
130 computeFeatures (
const PointCloudPtr & input)
134 features.
normals = estimateSurfaceNormals (input, 0.05);
135 features.
keypoints = detectKeypoints (input, features.
normals, 0.005, 10, 8, 1.5);
boost::shared_ptr< KdTree< PointT > > Ptr
NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point...
PCL_EXPORTS void copyPointCloud(const pcl::PCLPointCloud2 &cloud_in, const std::vector< int > &indices, pcl::PCLPointCloud2 &cloud_out)
Extract the indices of a given point cloud as a new point cloud.
void compute(PointCloudOut &output)
Overloaded computed method from pcl::Feature.
SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset ...
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
LocalDescriptorsPtr local_descriptors
GlobalDescriptorsPtr global_descriptor
void setRadiusSearch(double radius)
Set the sphere radius that is to be used for determining the nearest neighbors used for the feature e...
void setScales(float min_scale, int nr_octaves, int nr_scales_per_octave)
Specify the range of scales over which to search for keypoints.
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input dataset that contains the point normals of the XYZ dataset...
void setMinimumContrast(float min_contrast)
Provide a threshold to limit detection of keypoints without sufficient contrast.
void compute(PointCloudOut &output)
Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using th...
void setSearchSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to a dataset to add additional information to estimate the features for every point...
SurfaceNormalsPtr normals
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud d...
void compute(PointCloudOut &output)
Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...