docs: def register(self, src, trg, trg_mask=None, src_mask=None):
          """ Implementation of pair-wise registration and warping using Enhanced Correlation Coefficient
  
          This function estimates an Euclidean transformation (x,y translation + rotation) using the intensities of the
          pair of images to be registered. The similarity metric is a modification of the cross-correlation metric, which
          is invariant to distortions in contrast and brightness.
  
          :param src: 2D single channel source moving image
          :param trg: 2D single channel target reference image
          :param trg_mask: Mask of target image. Not used in this method.
          :param src_mask: Mask of source image. Not used in this method.
          :return: Estimated 2D transformation matrix of shape 2x3
          """
          # Parameters of registration
          warp_mode = cv2.MOTION_EUCLIDEAN
          # Specify the threshold of the increment
          # in the correlation coefficient between two iterations
          termination_eps = 1e-10
          # Define termination criteria
          criteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT,
                      self.params['MaxIters'], termination_eps)
          # Initialise warp matrix
          warp_matrix = np.eye(2, 3, dtype=np.float32)
          # Run the ECC algorithm. The results are stored in warp_matrix.
          _, warp_matrix = cv2.findTransformECC(src.astype(np.float32),
                                                trg.astype(np.float32),
                                                warp_matrix, warp_mode, criteria)
          return warp_matrix