filters.icp¶
The ICP filter uses the PCL’s Iterative Closest Point (ICP) algorithm to calculate a rigid (rotation and translation) transformation that best aligns two datasets. The first input to the ICP filter is considered the “fixed” points, and all subsequent points are “moving” points. The output from the change filter are the “moving” points after the calculated transformation has been applied, one point view per input. The transformation matrix is inserted into the stage’s metadata.
Dynamic Plugin
This stage requires a dynamic plugin to operate
Examples¶
{
"pipeline": [
"fixed.las",
"moving.las",
{
"type": "filters.icp"
},
"output.las"
]
}
To get the transform matrix, you’ll need to use the --metadata
option:
$ pdal pipeline icp-pipeline.json --metadata icp-metadata.json
The metadata output might start something like:
{
"stages":
{
"filters.icp":
{
"converged": true,
"fitness": 0.01953125097,
"transform": " 1 2.60209e-18 -1.97906e-09 -0.375 8.9407e-08 1 5.58794e-09 -0.5625 6.98492e -10 -5.58794e-09 1 0.00411987 0 0 0 1"
}
See also
filters.transformation to apply a transform to other points.
Options¶
None.