The library contains algorithms for filtering, feature estimation, surface reconstruction, 3D registration,[5] model fitting, object recognition, and segmentation.
These algorithms have been used, for example, for perception in robotics to filter outliers from noisy data, stitch 3D point clouds together, segment relevant parts of a scene, extract keypoints and compute descriptors to recognize objects in the world based on their geometric appearance, and create surfaces from point clouds and visualize them.
Boost is used for shared pointers and the FLANN library for quick k-nearest neighbor search.
PCL is cross-platform software that runs on the most commonly used operating systems: Linux, Windows, macOS and Android.
One of the PCD advantages is the ability to store and process organized point cloud datasets.
The header has a precisely defined format and contains the necessary information about the point cloud data that are stored in it.
Thanks to the fact that the ASCII format is more human readable, it can be opened in standard software tools and easily edited.
The project initially resided on a sub domain of Willow Garage then moved to a new website www.pointclouds.org in March 2011.
[14][15] When scanning a 3D point cloud, errors and various deviations can occur, which causes noise in the data.
These inaccuracies can lead to significant errors in further processing and it is therefore advisable to remove them with a suitable filter.
Mostly used local geometric features are the point normal and underlying surface's estimated curvature.
One of the easiest implemented methods for estimating the surface normal is an analysis of the eigenvectors and eigenvalues of a covariance matrix created from the neighborhood of the point.
There are implemented several classes, that support various segmentation methods: The pcl_visualization library is used to quickly and easily visualize 3D point cloud data.
The pcl_registration library implements number of point cloud registration algorithms for both organized and unorganized datasets.
The task is to identify the corresponding points between the data sets and find a transformation that minimizes their distance.
The sample_consensus library holds SAmple Consensus (SAC) methods like RANSAC and models to detect specific objects in point clouds.
One of the most commonly used is meshing, and the PCL library has two algorithms: very fast triangulation of original points and slower networking, which also smooths and fills holes.
Thanks to higher order polynomial interpolations between surrounding data points, MLS can correct and smooth out small errors caused by scanning.
Starting with PCL 1.0 the library offers a new generic grabber interface that provides easy access to different devices and file formats.
The library can be also used for detection of spatial changes between multiple unorganized point clouds by recursive comparison of octet tree structures.
The range image can be converted to a point cloud if the sensor position is specified or the borders can be extracted from it.