# pcregistercpd

Register two point clouds using CPD algorithm

## Syntax

## Description

returns a transformation that registers a moving point cloud with a fixed point
cloud using the CPD algorithm. The coherent point drift (CPD) algorithm [1] supports non-rigid transformations.`tform`

= pcregistercpd(`moving`

,`fixed`

)

**Note**

The CPD algorithm is robust to noise, outlier and missing points, at the
expense of speed. Consider downsampling point clouds using `pcdownsample`

before using
`pcregistercpd`

to improve the efficiency of
registration.

Alternatively, you can speed up the algorithm by using the `extractFPFHFeatures`

(Lidar Toolbox) function to extract features before
performing registration. For more details, see the Improve CPD Performance Using FPFH Descriptors
example.

`[___,`

also returns the root mean square error of the Euclidean distance between the
aligned point clouds.`rmse`

] = pcregistercpd(___)

`[___] = pcregistercpd(___,`

specifies options using one or more name-value arguments in addition to any
combination of arguments from previous syntaxes. For example,
`Name=Value`

)`MaxIterations=20`

stops the CPD algorithm after 20
iterations.

## Examples

## Input Arguments

## Output Arguments

## Algorithms

Both `MaxIterations`

and
`Tolerance`

are used
as stopping criteria. The algorithm stops when it satisfies either of the stopping
conditions, i.e., when the number of iteration reaches
`MaxIterations`

or the absolute percentage change in log
likelihood function is less than or equal to `Tolerance`

.

## References

[1] Myronenko, A., and X. Song.
"Point Set Registration: Coherent Point Drift. "*Proceedings of IEEE
Transactions on Pattern Analysis and Machine Intelligence (TPAMI)*." Vol
32, Number 12, December 2010, pp. 2262–2275.

## Extended Capabilities

## Version History

**Introduced in R2018b**

## See Also

### Functions

`pcregistercorr`

|`pcregistericp`

|`pcregisterndt`

|`pctransform`

|`pcshow`

|`pcshowpair`

|`pcdownsample`

|`pcfitplane`

|`pcdenoise`

|`pcmerge`