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);
void setSearchSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to a dataset to add additional information to estimate the features for every point...
SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset ...
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
GlobalDescriptorsPtr global_descriptor
void compute(PointCloudOut &output)
Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...
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.
SurfaceNormalsPtr normals
void setRadiusSearch(double radius)
Set the sphere radius that is to be used for determining the nearest neighbors used for the feature e...
NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point...
boost::shared_ptr< pcl::search::Search< PointT > > Ptr
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 setMinimumContrast(float min_contrast)
Provide a threshold to limit detection of keypoints without sufficient contrast.
FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud d...
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.
void compute(PointCloudOut &output)
Overloaded computed method from pcl::Feature.
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
void compute(PointCloudOut &output)
Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using th...
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input dataset that contains the point normals of the XYZ dataset...
LocalDescriptorsPtr local_descriptors