Point Cloud Library (PCL)
1.7.0
|
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 */