xdem.coreg.ICP#
- class xdem.coreg.ICP(max_iterations=100, tolerance=0.05, rejection_scale=2.5, num_levels=6, subsample=500000.0)[source]#
Iterative Closest Point DEM coregistration. Based on 3D registration of Besl and McKay (1992), https://doi.org/10.1117/12.57955.
Estimates a rigid transform (rotation + translation) between two DEMs.
Requires ‘opencv’ See opencv doc for more info: https://docs.opencv.org/master/dc/d9b/classcv_1_1ppf__match__3d_1_1ICP.html
- __init__(max_iterations=100, tolerance=0.05, rejection_scale=2.5, num_levels=6, subsample=500000.0)[source]#
Instantiate an ICP coregistration object.
- Parameters:
max_iterations (
int
) – The maximum allowed iterations before stopping.tolerance (
float
) – The residual change threshold after which to stop the iterations.rejection_scale (
float
) – The threshold (std * rejection_scale) to consider points as outliers.num_levels (
int
) – Number of octree levels to consider. A higher number is faster but may be more inaccurate.subsample (
float
|int
) – Subsample the input for speed-up. <1 is parsed as a fraction. >1 is a pixel count.
Methods
__init__
([max_iterations, tolerance, ...])Instantiate an ICP coregistration object.
apply
(dem[, transform, crs, bias_vars, resample])Apply the estimated transform to a DEM.
apply_pts
(coords)Apply the estimated transform to a set of 3D points.
centroid
()Get the centroid of the coregistration, if defined.
copy
()Return an identical copy of the class.
error
(reference_dem, dem_to_be_aligned[, ...])Calculate the error of a coregistration approach.
fit
(reference_dem, dem_to_be_aligned[, ...])Estimate the coregistration transform on the given DEMs.
fit_pts
(reference_dem, dem_to_be_aligned[, ...])Estimate the coregistration transform between a DEM and a reference point elevation data.
from_matrix
(matrix)Instantiate a generic Coreg class from a transformation matrix.
from_translation
([x_off, y_off, z_off])Instantiate a generic Coreg class from a X/Y/Z translation.
residuals
(reference_dem, dem_to_be_aligned)Calculate the residual offsets (the difference) between two DEMs after applying the transformation.
to_matrix
()Convert the transform to a 4x4 transformation matrix.
Attributes
is_affine
Check if the transform be explained by a 3D affine transform.