def test_plot_2d_diffeomorphic_map(): # Test the regtools plotting interface (lightly). mv_shape = (11, 12) moving = np.random.rand(*mv_shape) st_shape = (13, 14) static = np.random.rand(*st_shape) dim = static.ndim metric = SSDMetric(dim) level_iters = [200, 100, 50, 25] sdr = SymmetricDiffeomorphicRegistration(metric, level_iters, inv_iter=50) mapping = sdr.optimize(static, moving) # Smoke testing of plots ff = regtools.plot_2d_diffeomorphic_map(mapping, 10) # Defualt shape is static shape, moving shape npt.assert_equal(ff[0].shape, st_shape) npt.assert_equal(ff[1].shape, mv_shape) # Can specify shape ff = regtools.plot_2d_diffeomorphic_map(mapping, delta = 10, direct_grid_shape=(7, 8), inverse_grid_shape=(9, 10)) npt.assert_equal(ff[0].shape, (7, 8)) npt.assert_equal(ff[1].shape, (9, 10))
sdr = SymmetricDiffeomorphicRegistration(metric=SSDMetric(img_ref.ndim), step_length=1.0, level_iters=[50, 100], inv_iter=50, ss_sigma_factor=0.1, opt_tol=1.e-3) """ Perform the registration with equal images. """ mapping = sdr.optimize(img_ref.astype(float), img_ref.astype(float)) img_warp = mapping.transform(img_ref, 'linear') show_images(img_ref, img_warp, 'output-0') regtools.plot_2d_diffeomorphic_map(mapping, 5, 'map-0.png') """ .. figure:: output-0.png :align: center .. figure:: map-0.png :align: center Registration results for default parameters and equal images. """ """ Perform the registration with binary and fuzzy images. """ mapping = sdr.optimize(img_ref.astype(float), img_in.astype(float))
""" sdr = SymmetricDiffeomorphicRegistration(metric=SSDMetric(img_ref.ndim), step_length=1.0, level_iters=[50, 100], inv_iter=50, ss_sigma_factor=0.1, opt_tol=1.e-3) """ Perform the registration with equal images. """ mapping = sdr.optimize(img_ref.astype(float), img_ref.astype(float)) img_warp = mapping.transform(img_ref, 'linear') show_images(img_ref, img_warp, 'output-0') regtools.plot_2d_diffeomorphic_map(mapping, 5, 'map-0.png') """ .. figure:: output-0.png :align: center .. figure:: map-0.png :align: center Registration results for default parameters and equal images. """ """ Perform the registration with binary and fuzzy images. """ mapping = sdr.optimize(img_ref.astype(float), img_in.astype(float)) img_warp = mapping.transform(img_in, 'linear') show_images(img_ref, img_warp, 'output-1')
sdr = SymmetricDiffeomorphicRegistration(metric, level_iters, inv_iter = 50) """ Now we execute the optimization, which returns a DiffeomorphicMap object, that can be used to register images back and forth between the static and moving domains """ mapping = sdr.optimize(static, moving) """ It is a good idea to visualize the resulting deformation map to make sure the result is reasonable (at least, visually) """ regtools.plot_2d_diffeomorphic_map(mapping, 10, 'diffeomorphic_map.png') """ .. figure:: diffeomorphic_map.png :align: center Deformed lattice under the resulting diffeomorphic map. """ """ Now let's warp the moving image and see if it gets similar to the static image """ warped_moving = mapping.transform(moving, 'linear') regtools.overlay_images(static, warped_moving, 'Static','Overlay','Warped moving', 'direct_warp_result.png')
sdr = SymmetricDiffeomorphicRegistration(metric, level_iters, inv_iter = 50) """ Now we execute the optimization, which returns a DiffeomorphicMap object, that can be used to register images back and forth between the static and moving domains """ mapping = sdr.optimize(static, moving) """ It is a good idea to visualize the resulting deformation map to make sure the result is reasonable (at least, visually) """ regtools.plot_2d_diffeomorphic_map(mapping, 10, 'diffeomorphic_map.png') """ .. figure:: diffeomorphic_map.png :align: center Deformed lattice under the resulting diffeomorphic map. """ """ Now let's warp the moving image and see if it gets similar to the static image """ warped_moving = mapping.transform(moving, 'linear') regtools.overlay_images(static, warped_moving, 'Static','Overlay','Warped moving', 'direct_warp_result.png')