Beispiel #1
0
def test_syn_registration_flow():
    moving_data, static_data = get_synthetic_warped_circle(40)
    moving_data[..., :10] = 0
    moving_data[..., -1:-11:-1] = 0
    static_data[..., :10] = 0
    static_data[..., -1:-11:-1] = 0

    syn_flow = SynRegistrationFlow()

    with TemporaryDirectory() as out_dir:
        static_img = nib.Nifti1Image(static_data.astype(np.float), np.eye(4))
        fname_static = pjoin(out_dir, 'tmp_static.nii.gz')
        nib.save(static_img, fname_static)

        moving_img = nib.Nifti1Image(moving_data.astype(np.float), np.eye(4))
        fname_moving = pjoin(out_dir, 'tmp_moving.nii.gz')
        nib.save(moving_img, fname_moving)

        positional_args = [fname_static, fname_moving]
        metric_optional_args = {'metric': 'ssd',
                                'mopt_smooth': 4.0,
                                'mopt_inner_iter': 5,
                                'mopt_step_type': 'demons',
                                }
        optimizer_optional_args = {'level_iters': [200, 100, 50, 25],
                                   'step_length': 0.5,
                                   'opt_tol': 1e-4,
                                   'inv_iter': 40,
                                   'inv_tol': 1e-3,
                                   'ss_sigma_factor': 0.2
                                   }

        all_args = dict(metric_optional_args, **optimizer_optional_args)
        syn_flow.run(*positional_args,
                     out_dir=out_dir,
                     **all_args
                     )

        warped_path = syn_flow.last_generated_outputs['out_warped']
        npt.assert_equal(os.path.isfile(warped_path), True)
        warped_map_path = syn_flow.last_generated_outputs['out_field']
        npt.assert_equal(os.path.isfile(warped_map_path), True)
Beispiel #2
0
def test_syn_registration_flow():
    moving_data, static_data = get_synthetic_warped_circle(40)
    moving_data[..., :10] = 0
    moving_data[..., -1:-11:-1] = 0
    static_data[..., :10] = 0
    static_data[..., -1:-11:-1] = 0

    syn_flow = SynRegistrationFlow()

    with TemporaryDirectory() as out_dir:
        static_img = nib.Nifti1Image(static_data.astype(np.float), np.eye(4))
        fname_static = pjoin(out_dir, 'tmp_static.nii.gz')
        nib.save(static_img, fname_static)

        moving_img = nib.Nifti1Image(moving_data.astype(np.float), np.eye(4))
        fname_moving = pjoin(out_dir, 'tmp_moving.nii.gz')
        nib.save(moving_img, fname_moving)

        positional_args = [fname_static, fname_moving]
        metric_optional_args = {
            'metric': 'ssd',
            'mopt_smooth': 4.0,
            'mopt_inner_iter': 5,
            'mopt_step_type': 'demons',
        }
        optimizer_optional_args = {
            'level_iters': [200, 100, 50, 25],
            'step_length': 0.5,
            'opt_tol': 1e-4,
            'inv_iter': 40,
            'inv_tol': 1e-3,
            'ss_sigma_factor': 0.2
        }

        all_args = dict(metric_optional_args, **optimizer_optional_args)
        syn_flow.run(*positional_args, out_dir=out_dir, **all_args)

        warped_path = syn_flow.last_generated_outputs['out_warped']
        npt.assert_equal(os.path.isfile(warped_path), True)
        warped_map_path = syn_flow.last_generated_outputs['out_field']
        npt.assert_equal(os.path.isfile(warped_map_path), True)