def testdata_matching_affine_inliers_normalized(): tup = testdata_matching_affine_inliers() kpts1, kpts2, fm, aff_inliers, rchip1, rchip2, xy_thresh_sqrd = tup kpts1_ma = kpts1.take(fm.T[0].take(aff_inliers), axis=0) kpts2_ma = kpts2.take(fm.T[1].take(aff_inliers), axis=0) #kpts1_ma, kpts2_ma, rchip1, rchip2, xy_thresh_sqrd = testdata_matching_affine_inliers() # Matching affine inliers xy1_ma = ktool.get_xys(kpts1_ma) xy2_ma = ktool.get_xys(kpts2_ma) # Matching affine inliers normalized xy1_man, T1 = ltool.whiten_xy_points(xy1_ma) xy2_man, T2 = ltool.whiten_xy_points(xy2_ma) return xy1_man, xy2_man, rchip1, rchip2, T1, T2
def get_normalized_affine_inliers(kpts1, kpts2, fm, aff_inliers): """ returns xy-inliers that are normalized to have a mean of 0 and std of 1 as well as the transformations so the inverse can be taken """ fm_affine = fm.take(aff_inliers, axis=0) # Get corresponding points and shapes kpts1_ma = kpts1.take(fm_affine.T[0], axis=0) kpts2_ma = kpts2.take(fm_affine.T[1], axis=0) #kpts1_ma = kpts1.take(fm_affine.T[0], axis=0) #kpts2_ma = kpts2.take(fm_affine.T[1], axis=0) # Normalize affine inliers xy locations xy1_ma = ktool.get_xys(kpts1_ma) xy2_ma = ktool.get_xys(kpts2_ma) xy1_man, T1 = ltool.whiten_xy_points(xy1_ma) xy2_man, T2 = ltool.whiten_xy_points(xy2_ma) return xy1_man, xy2_man, T1, T2