Point Cloud Library (PCL)  1.7.0
/tmp/buildd/pcl-1.7-1.7.0/features/features.doxy
00001 /**
00002   \addtogroup features Module features
00003 
00004   \section secFeaturesPresentation Overview
00005 
00006 The <b>pcl_features</b> library contains data structures and mechanisms for 3D
00007 feature estimation from point cloud data. <i>3D features</i> are
00008 representations at a certain 3D point or position in space, which describe
00009 geometrical patterns based on the information available around the point. The
00010 data space selected around the query point is usually referred as the
00011 <b>k-neighborhood</b>. 
00012 
00013 The following figure shows a simple example of a selected query point, and its
00014 selected k-neighborhood. 
00015 
00016 \image html http://www.pointclouds.org/assets/images/contents/documentation/features_normal.png
00017 
00018 An example of two of the most widely used geometric point features are the
00019 underlying surface's estimated curvature and normal at a query point <b>p</b>.
00020 Both of them are considered local features, as they characterize a point using
00021 the information provided by its k closest point neighbors. For determining
00022 these neighbors efficienctly, the input dataset is usually split into smaller
00023 chunks using spatial decomposition techniques such as octrees or kD-trees (see
00024 the figure below - left: kD-tree, right: octree), and then closest point
00025 searches are performed in that space. Depending on the application one can opt
00026 for either determining a fixed number of k points in the vecinity of p, or all
00027 points which are found inside of a sphere of radius r centered at p.
00028 Unarguably, one the easiest methods for estimating the surface normals and
00029 curvature changes at a point p is to perform an eigendecomposition (i.e.
00030 compute the eigenvectors and eigenvalues) of the k-neighborhood point surface
00031 patch. Thus, the eigenvector corresponding to the smallest eigenvalue will
00032 approximate the surface normal n at point p, while the surface curvature change
00033 will be estimated from the eigenvalues as:
00034 
00035 <center>\f$\frac{\lambda_0}{\lambda_0 + \lambda_1 + \lambda_2}\f$, where \f$\lambda_0 < \lambda_1 < \lambda_2\f$.</center>
00036 
00037 \image html http://www.pointclouds.org/assets/images/contents/documentation/features_bunny.png
00038 
00039 Please visit http://www.pointclouds.org for more information.
00040 
00041   \section secFeaturesRequirements Requirements
00042   - \ref common "common"
00043   - \ref search "search"
00044   - \ref kdtree "kdtree"
00045   - \ref octree "octree"
00046   - \ref range_image "range_image"
00047 
00048 */