xdem.coreg.ICP#
- class xdem.coreg.ICP(max_iterations=100, tolerance=0.05, rejection_scale=2.5, num_levels=6)[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)[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.
Methods
__init__([max_iterations, tolerance, ...])Instantiate an ICP coregistration object.
apply(dem[, transform, crs, 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_affineCheck if the transform be explained by a 3D affine transform.