| Customize Help

Merging point clouds and retrieving registration results

From a group of point clouds, the MIL 3D Registration module can create a single point cloud that contains all the transformed points of the original point clouds using the M3dregMerge() function. Essentially, the working coordinate systems of all point clouds are aligned using the results of the registration operation, and their points are merged in a single point cloud container.

If you want to merge multiple point clouds without performing any transformations, or without using any registration results, you can use M3dimMerge() instead.

Merging point clouds with M3dregMerge() requires the registration results of a successful call to M3dregCalculate(). These results are stored in a pairwise 3D registration result buffer; the results specify the transformations that will be applied to the point clouds during the merge operation.

Optionally, you can specify a subsample 3D image processing context to subsample the merged point cloud. This is useful for removing any duplicate points in overlapping regions of the merged point cloud. For this application, it is recommended that you specify M_SUBSAMPLE_GRID as the subsampling operation (using M3dimControl() with M_SUBSAMPLE_MODE), and specify values for M_GRID_SIZE_... according to your application.

Retrieving specific registration results

After a successful call to M3dregCalculate(), you can retrieve any of the individual transformations from the pairwise 3D registration result buffer, using M3dregCopyResult() with M_REGISTRATION_MATRIX. These transformations specify how to align the working coordinate system of one point cloud to another point cloud.

For example, in the following topology, each point cloud is the reference for only one other point cloud:

However, it is possible to retrieve the transformation that aligns the working coordinate system of any point cloud, to any other point cloud in the topology:

These individual transformations can be useful if, for example, you want to use one of them for the preregistration iteration in a different registration operation.