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>
21 estimateSurfaceNormals (
const PointCloudPtr & input,
float radius)
28 normal_estimation.
compute (*normals);
50 detectKeypoints (
const PointCloudPtr & points,
const SurfaceNormalsPtr & normals,
51 float min_scale,
int nr_octaves,
int nr_scales_per_octave,
float min_contrast)
55 sift_detect.
setScales (min_scale, nr_octaves, nr_scales_per_octave);
59 sift_detect.
compute (keypoints_temp);
79 computeLocalDescriptors (
const PointCloudPtr & points,
const SurfaceNormalsPtr & normals,
80 const PointCloudPtr & keypoints,
float feature_radius)
89 fpfh_estimation.
compute (*local_descriptors);
91 return (local_descriptors);
103 computeGlobalDescriptor (
const PointCloudPtr & points,
const SurfaceNormalsPtr & normals)
110 vfh_estimation.
compute (*global_descriptor);
112 return (global_descriptor);
129 computeFeatures (
const PointCloudPtr & input)
133 features.
normals = estimateSurfaceNormals (input, 0.05);
134 features.
keypoints = detectKeypoints (input, features.
normals, 0.005, 10, 8, 1.5);
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.
boost::shared_ptr< pcl::search::Search< PointT > > Ptr
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...