Beispiel #1
0
def avecs_for_frames(frames):
    if len(frames) <= 1:
        return [], []

    avecs = []
    trans = Transform2d()

    idx, frame = frames[0]
    t = trans.forward(frame, nlevels=5)

    h_pair = (None, t)
    idx_pair = (None, idx)
    idx_pairs = []

    for idx, frame in frames[1:]:
        t = trans.forward(frame, nlevels=5)

        h_pair = (h_pair[1], t)
        idx_pair = (idx_pair[1], idx)

        idx_pairs.append(idx_pair)
        avecs.append(reg.estimatereg(h_pair[0], h_pair[1]))
        logging.info('Finished frame pair {0}'.format(idx_pair))

    return idx_pairs, avecs
def transform_dtcwt(ref, src):
    ref_t = transform2d.forward(ref, nlevels=4)
    src_t = transform2d.forward(src, nlevels=4)
    reg = registration.estimatereg(src_t, ref_t)
    vxs, vys = registration.velocityfield(reg, ref.shape[:2], method='nearest')
    mesh = np.sqrt(vxs * vxs + vys * vys)
    return mesh
Beispiel #3
0
def avecs_for_frames(frames):
    if len(frames) <= 1:
        return [], []

    avecs = []
    trans = Transform2d()

    idx, frame = frames[0]
    t = trans.forward(frame, nlevels=5)

    h_pair = (None, t)
    idx_pair = (None, idx)
    idx_pairs = []

    for idx, frame in frames[1:]:
        t = trans.forward(frame, nlevels=5)

        h_pair = (h_pair[1], t)
        idx_pair = (idx_pair[1], idx)

        idx_pairs.append(idx_pair)
        avecs.append(reg.estimatereg(h_pair[0], h_pair[1]))
        logging.info("Finished frame pair {0}".format(idx_pair))

    return idx_pairs, avecs
Beispiel #4
0
def load_flow(vid, fnum1, fnum2):
    """
    Load the registration which maps frame 1 to frame 2 of a video.
    :param vid: The video from which to take the frames, an instance of :class:`video.Video`
    :param fnum1: First frame number
    :param fnum2: Second frame number
    :return: The DTCWT affine distortion parameters, a [N,M,6] array
    """
    logging.debug('Finding flow of frames {} & {}'.format(fnum1, fnum2))
    return reg.estimatereg(take_transform(vid, fnum1),
                           take_transform(vid, fnum2))
Beispiel #5
0
import numpy as np
import cv2
import dtcwt
import dtcwt.registration as registration

import sonarPlotting

if __name__ == '__main__':
    ref = cv2.imread("D:\Thesis\image_regis\multiLook_1.jpg", 0)
    src = cv2.imread("D:\Thesis\image_regis\multiLook_2.jpg", 0)

    transform = dtcwt.Transform2d()
    ref_t = transform.forward(ref, nlevels=6)
    src_t = transform.forward(src, nlevels=6)

    reg = registration.estimatereg(src_t, ref_t)
    warped_src = registration.warp(src, reg, method='bilinear')

    plot_name = ['ref', 'src', 'ref_t', 'src_t']
    sonarPlotting.subplot4(ref, src, ref, warped_src, plot_name)

    cv2.imshow("warped", warped_src)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
Beispiel #6
0
def avecs_for_pair(prev, next_):
    trans = CLTransform2d() if OPTS['--cl'] else NumPyTransform2d()
    t1 = trans.forward(prev, nlevels=5)
    t2 = trans.forward(next_, nlevels=5)
    return reg.estimatereg(t1, t2)