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
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 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))
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()
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)