From 081dde23c718a202324ea74de8dfd51d21092d16 Mon Sep 17 00:00:00 2001 From: iperov Date: Mon, 18 Oct 2021 16:53:53 +0400 Subject: [PATCH] _ --- xlib/math/Affine2DMat.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/xlib/math/Affine2DMat.py b/xlib/math/Affine2DMat.py index ea567e2..9c4c364 100644 --- a/xlib/math/Affine2DMat.py +++ b/xlib/math/Affine2DMat.py @@ -22,6 +22,10 @@ class Affine2DMat(np.ndarray): def __init__(self, values): super().__init__() + @staticmethod + def identity(): + return Affine2DMat([[1,0,0],[0,1,0]]) + @staticmethod def umeyama(src, dst, estimate_scale=True): """ @@ -156,6 +160,9 @@ class Affine2DUniMat(Affine2DMat): same as Affine2DMat but for transformation of uniform coordinates """ + @staticmethod + def identity(): return Affine2DMat.identity().as_uni_mat() + @staticmethod def umeyama(src, dst, estimate_scale=True): return Affine2DMat.umeyama(src, dst, estimate_scale=estimate_scale).as_uni_mat() @@ -188,11 +195,8 @@ class Affine2DUniMat(Affine2DMat): src_pts = np.float32([(0,0),(1,0),(0,1)]) dst_pts = self.transform_points(src_pts) src_pts += (utw, uth) - return Affine2DUniMat.from_3_pairs(src_pts, dst_pts) - - def to_exact_mat(self, sw : float, sh: float, tw: float, th: float) -> 'Affine2DMat': """ calculate exact Affine2DMat using provided source and target sizes