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
*/