def find_rotation_scale(im0, im1, isccs=False):
    """Compares the images and return the best guess for the rotation angle,
    and scale difference.

    Parameters
    ----------
    im0: 2d array
        First image
    im1: 2d array
        Second image
    isccs: boolean, default False
        Set to True if the images are alredy DFT and in CCS representation

    Returns
    -------
    angle: number
        The angle difference
    scale: number
        The scale difference

    Notes
    -----
    Uses find_shift_dft
    """
    # sanitize input
    im0 = np.asarray(im0, dtype=np.float32)
    im1 = np.asarray(im1, dtype=np.float32)
    truesize = None

    # if ccs, convert to shifted dft before giving to polar_fft
    if isccs:
        truesize = im0.shape
        im0 = centered_mag_sq_ccs(im0)
        im1 = centered_mag_sq_ccs(im1)
    # Get log polar coordinates. choose the log base
    lp1, log_base = polar_fft(im1, logpolar=True, isshiftdft=isccs,
                              logoutput=True, truesize=truesize)
    lp0, log_base = polar_fft(im0, logpolar=True, isshiftdft=isccs,
                              logoutput=True, truesize=truesize,
                              nangle=lp1.shape[0], radiimax=lp1.shape[1])
    # Find the shift with log of the log-polar images,
    # to compensate for dft intensity repartition
    angle, scale = find_shift_dft(lp0, lp1)
    # get angle in correct units
    angle *= np.pi / lp1.shape[0]
    # get scale in linear units
    scale = log_base ** (scale)
    # return angle and scale
    return angle, scale
def find_rotation_scale ( im0 , im1 , isccs = False ) : im0 = np . asarray ( im0 , dtype = np . float32 ) im1 = np . asarray ( im1 , dtype = np . float32 ) truesize = None if isccs : truesize = im0 . shape im0 = centered_mag_sq_ccs ( im0 ) im1 = centered_mag_sq_ccs ( im1 ) lp1 , log_base = polar_fft ( im1 , logpolar = True , isshiftdft = isccs , logoutput = True , truesize = truesize ) lp0 , log_base = polar_fft ( im0 , logpolar = True , isshiftdft = isccs , logoutput = True , truesize = truesize , nangle = lp1 . shape [ 0 ] , radiimax = lp1 . shape [ 1 ] ) angle , scale = find_shift_dft ( lp0 , lp1 ) angle *= np . pi / lp1 . shape [ 0 ] scale = log_base ** ( scale ) return angle , scale
Compares the images and return the best guess for the rotation angle,
    and scale difference.

    Parameters
    ----------
    im0: 2d array
        First image
    im1: 2d array
        Second image
    isccs: boolean, default False
        Set to True if the images are alredy DFT and in CCS representation

    Returns
    -------
    angle: number
        The angle difference
    scale: number
        The scale difference

    Notes
    -----
    Uses find_shift_dft