Jat = resample(J, Av, reference=I, ref_voxel_coords=True) save_image(Jat, 'affine_anubis_to_ammon.nii') # Region matching t0 = time.time() ##corners, size = get_blocks(I.shape, 3, 1, 0) #.5 size ##corners, size = get_blocks(I.shape, 6, 2, 0) #.75 size ##corners, size = get_blocks(I.shape, 6, 1, 0) # .5 size corners, size = get_blocks(I.shape, 5, 2, 1) affines = [] for corner in corners: print('Doing block: %s' % corner) Ar = A.copy() R.subsample(corner=corner, size=size) R.optimize(Ar) affines.append(Ar) # Create polyaffine transform t1 = time.time() centers = np.array(corners) + (size - 1) / 2. affines = [Ar.compose(Affine(I.affine)) for Ar in affines] Tv = PolyAffine(centers, affines, .5 * size) # Resample target image t2 = time.time() Jt = resample(J, Tv, reference=I, ref_voxel_coords=True) ###c = debug_resample(Tv, I, J)