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