def affine_transformation(z, order, **kwargs):
"""Apply an affine transformation to a 2-dimensional array.
Parameters
----------
matrix : np.array
3x3 numpy array specifying the affine transformation to be applied.
order : int
Interpolation order.
Returns
-------
trans : array
Affine transformed diffraction pattern.
"""
shift_y, shift_x = np.array(z.shape[:2]) / 2.
tf_shift = tf.SimilarityTransform(translation=[-shift_x, -shift_y])
tf_shift_inv = tf.SimilarityTransform(translation=[shift_x, shift_y])
transformation = tf.AffineTransform(**kwargs)
trans = tf.warp(z, (tf_shift + (transformation + tf_shift_inv)).inverse,
order=order)
return trans
评论列表
文章目录