Go to the documentation of this file.00001 #ifndef FEATURE_ESTIMATION_H
00002 #define FEATURE_ESTIMATION_H
00003
00004 #include "typedefs.h"
00005
00006 #include <pcl/io/io.h>
00007 #include <pcl/features/normal_3d.h>
00008 #include <pcl/keypoints/sift_keypoint.h>
00009 #include <pcl/features/fpfh.h>
00010 #include <pcl/features/vfh.h>
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 SurfaceNormalsPtr
00021 estimateSurfaceNormals (const PointCloudPtr & input, float radius)
00022 {
00023 SurfaceNormalsPtr normals;
00024 return (normals);
00025 }
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 PointCloudPtr
00044 detectKeypoints (const PointCloudPtr & points, const SurfaceNormalsPtr & normals,
00045 float min_scale, int nr_octaves, int nr_scales_per_octave, float min_contrast)
00046 {
00047 PointCloudPtr keypoints;
00048 return (keypoints);
00049 }
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063 LocalDescriptorsPtr
00064 computeLocalDescriptors (const PointCloudPtr & points, const SurfaceNormalsPtr & normals,
00065 const PointCloudPtr & keypoints, float feature_radius)
00066 {
00067 LocalDescriptorsPtr local_descriptors;
00068 return (local_descriptors);
00069 }
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 GlobalDescriptorsPtr
00080 computeGlobalDescriptor (const PointCloudPtr & points, const SurfaceNormalsPtr & normals)
00081 {
00082 GlobalDescriptorsPtr global_descriptor;
00083 return (global_descriptor);
00084 }
00085
00086
00087 struct ObjectFeatures
00088 {
00089 PointCloudPtr points;
00090 SurfaceNormalsPtr normals;
00091 PointCloudPtr keypoints;
00092 LocalDescriptorsPtr local_descriptors;
00093 GlobalDescriptorsPtr global_descriptor;
00094 };
00095
00096
00097
00098
00099 ObjectFeatures
00100 computeFeatures (const PointCloudPtr & input)
00101 {
00102 ObjectFeatures features;
00103 features.points = input;
00104 features.normals = estimateSurfaceNormals (input, 0.05);
00105 features.keypoints = detectKeypoints (input, features.normals, 0.005, 10, 8, 1.5);
00106 features.local_descriptors = computeLocalDescriptors (input, features.normals, features.keypoints, 0.1);
00107 features.global_descriptor = computeGlobalDescriptor (input, features.normals);
00108
00109 return (features);
00110 }
00111
00112 #endif