birl.utilities.registration module¶
Image registration tools
Copyright (C) 2016-2019 Jiri Borovec <jiri.borovec@fel.cvut.cz>
-
birl.utilities.registration.
estimate_affine_transform
(points_0, points_1)[source]¶ estimate Affine transformations and warp particular points sets to the other coordinate frame
Parameters: - points_0 (ndarray) – set of points of shape (N, 2)
- points_1 (ndarray) – set of points of shape (N, 2)
Return tuple(ndarray,ndarray,ndarray,ndarray): transform. matrix & inverse and warped point sets
>>> pts0 = np.array([[4., 116.], [4., 4.], [26., 4.], [26., 116.]], dtype=int) >>> pts1 = np.array([[61., 56.], [61., -56.], [39., -56.], [39., 56.]]) >>> mx, mx_inv, pts0_w, pts1_w = estimate_affine_transform(pts0, pts1) >>> np.round(mx, 2) array([[ -1., 0., 65.], [ 0., 1., -60.], [ 0., 0., 1.]]) >>> pts0_w array([[ 61., 56.], [ 61., -56.], [ 39., -56.], [ 39., 56.]]) >>> pts1_w array([[ 4., 116.], [ 4., 4.], [ 26., 4.], [ 26., 116.]])
-
birl.utilities.registration.
get_affine_components
(matrix)[source]¶ get the main components of Affine transform
Parameters: matrix (ndarray) – affine transformation matrix for 2d Return dict: dictionary of float values >>> mtx = np.array([[ -0.95, 0.1, 65.], [ 0.1, 0.95, -60.], [ 0., 0., 1.]]) >>> import pandas as pd >>> aff = pd.Series(get_affine_components(mtx)).sort_index() >>> aff # doctest: +NORMALIZE_WHITESPACE +ELLIPSIS rotation 173.9... scale (0.95..., 0.95...) shear -3.14... translation (65.0, -60.0) dtype: object