5 #include <pcl/common/io.h>
6 #include <pcl/features/normal_3d.h>
7 #include <pcl/keypoints/sift_keypoint.h>
8 #include <pcl/features/fpfh.h>
9 #include <pcl/features/vfh.h>
10 #include <pcl/search/kdtree.h>
20 estimateSurfaceNormals (
const PointCloudPtr & input,
float radius)
27 normal_estimation.
compute (*normals);
49 detectKeypoints (
const PointCloudPtr & points,
const SurfaceNormalsPtr & ,
50 float min_scale,
int nr_octaves,
int nr_scales_per_octave,
float min_contrast)
54 sift_detect.
setScales (min_scale, nr_octaves, nr_scales_per_octave);
58 sift_detect.
compute (keypoints_temp);
78 computeLocalDescriptors (
const PointCloudPtr & points,
const SurfaceNormalsPtr & normals,
79 const PointCloudPtr & keypoints,
float feature_radius)
88 fpfh_estimation.
compute (*local_descriptors);
90 return (local_descriptors);
102 computeGlobalDescriptor (
const PointCloudPtr & points,
const SurfaceNormalsPtr & normals)
109 vfh_estimation.
compute (*global_descriptor);
111 return (global_descriptor);
128 computeFeatures (
const PointCloudPtr & input)
132 features.
normals = estimateSurfaceNormals (input, 0.05);
133 features.
keypoints = detectKeypoints (input, features.
normals, 0.005, 10, 8, 1.5);
FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud d...
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.
void setSearchSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to a dataset to add additional information to estimate the features for every point...
void setRadiusSearch(double radius)
Set the sphere radius that is to be used for determining the nearest neighbors used for the feature e...
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
void compute(PointCloudOut &output)
Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using th...
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.
NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point.
void setInputCloud(const PointCloudConstPtr &cloud) override
Provide a pointer to the input dataset.
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset ...
void setMinimumContrast(float min_contrast)
Provide a threshold to limit detection of keypoints without sufficient contrast.
void setScales(float min_scale, int nr_octaves, int nr_scales_per_octave)
Specify the range of scales over which to search for keypoints.
VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...
void compute(PointCloudOut &output)
Overloaded computed method from pcl::Feature.
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...
shared_ptr< pcl::search::Search< PointT > > Ptr
void copyPointCloud(const pcl::PointCloud< PointInT > &cloud_in, pcl::PointCloud< PointOutT > &cloud_out)
Copy all the fields from a given point cloud into a new point cloud.
LocalDescriptorsPtr local_descriptors
GlobalDescriptorsPtr global_descriptor
SurfaceNormalsPtr normals