Point Cloud Library (PCL)  1.12.0
/builddir/build/BUILD/pcl-1.12.0/features/features.doxy
1 /**
2  \addtogroup features Module features
3 
4  \section secFeaturesPresentation Overview
5 
6 The <b>pcl_features</b> library contains data structures and mechanisms for 3D
7 feature estimation from point cloud data. <i>3D features</i> are
8 representations at a certain 3D point or position in space, which describe
9 geometrical patterns based on the information available around the point. The
10 data space selected around the query point is usually referred as the
11 <b>k-neighborhood</b>.
12 
13 The following figure shows a simple example of a selected query point, and its
14 selected k-neighborhood.
15 
16 \image html http://www.pointclouds.org/assets/images/contents/documentation/features_normal.png
17 
18 An example of two of the most widely used geometric point features are the
19 underlying surface's estimated curvature and normal at a query point <b>p</b>.
20 Both of them are considered local features, as they characterize a point using
21 the information provided by its k closest point neighbors. For determining
22 these neighbors efficiently, the input dataset is usually split into smaller
23 chunks using spatial decomposition techniques such as octrees or kD-trees (see
24 the figure below - left: kD-tree, right: octree), and then closest point
25 searches are performed in that space. Depending on the application one can opt
26 for either determining a fixed number of k points in the vicinity of p, or all
27 points which are found inside of a sphere of radius r centered at p.
28 Unarguably, one the easiest methods for estimating the surface normals and
29 curvature changes at a point p is to perform an eigendecomposition (i.e.
30 compute the eigenvectors and eigenvalues) of the k-neighborhood point surface
31 patch. Thus, the eigenvector corresponding to the smallest eigenvalue will
32 approximate the surface normal n at point p, while the surface curvature change
33 will be estimated from the eigenvalues as:
34 
35 <center>\f$\frac{\lambda_0}{\lambda_0 + \lambda_1 + \lambda_2}\f$, where \f$\lambda_0 < \lambda_1 < \lambda_2\f$.</center>
36 
37 \image html http://www.pointclouds.org/assets/images/contents/documentation/features_bunny.png
38 
39 Please visit http://www.pointclouds.org for more information.
40 
41  \section secFeaturesRequirements Requirements
42  - \ref common "common"
43  - \ref search "search"
44  - \ref kdtree "kdtree"
45  - \ref octree "octree"
46  - \ref pcl::RangeImage "range_image"
47 
48 */