Digitizing large objects or scenes often is often performed by scanning from several points of view and merging the scans together afterwards. If the sensors used for acquisition do not have a way to spatially organize these scans, a registration algorithm should be applied in order to produce a unified point cloud that is spatially consistent; even if the sensors used do produce localization and orientation information, these might still suffer from noise and imprecision and require a registration processing.
CGAL now offers wrappers for two registration libraries: OpenGR and Pointmatcher, enabling the combination of these tools with the diverse algorithms of CGAL (Point set processing, Shape Reconstruction, Shape Detection, Classification, ...) in a seamless and efficient manner.
OpenGR is a collection of C++ libraries for 3D Global Registration released under the terms of the APACHE V2 licence. The algorithm used is Super4PCS.
From two arbitrarily located and arbitrarily oriented point clouds, OpenGR computes a global registration transformation: applying this transformation to the second point cloud makes it coarsely registered with the first one.
Pointmatcher is a modular library implementing the Iterative Closest Point (ICP) algorithm for aligning point clouds, released under the terms of the BSD license.
From point clouds roughly registered (for example, using the output of OpenGR), Pointmatcher computes a fine registration transformation: applying this transformation to the second point cloud makes it finely registered with the first one.
Registration pipeline. From left to right: input point cloud, output of coarse registration with OpenGR, output of fine registration using Pointmatcher.