From Slicer Wiki
Jump to: navigation, search
Home < Modules:DeformableB-SplineRegistration-Documentation-3.4

Return to Slicer 3.6 Documentation

Gallery of New Features

Fast Non-rigid BSpline Registration

Fast Non-rigid B-Spline Registration

Example BSpline deformation of a liver CT dataset. Superimposed gridlines indicate extent of deformation applied.
Example BSpline deformation of a liver CT dataset. Superimposed gridlines indicate extent of deformation applied

General Information

This module was implemented by Jim Miller and Bill Lorensen and is based on the ITK B-spline implementation.

Module Type & Category

Type: CLI

Category: Registration

Authors, Collaborators & Contact

  • Author: Bill Lorensen
  • Contact: bill.lorensen at

Module Description

This module performs non-rigid alignment/registration of two volumes based on a B-spline interpolation scheme, driven by points on a (cubic) control grid. The number of points on the grid is expected to be low to obtain a fast and feasible solution. Output consists in a transform node and/or resampled target volume. For finer grids a scale-space approach of multiple runs with gradually increasing grid size is recommended. Note that non-rigid transforms as produced here are not available for instant view in the data module in the way linear transforms are, i.e. moving a new volume under a B-spline transform in the Data/MRML tree will not show an effect in the views. To see the result the volume must be resampled, using the ResampleScalarVectorDWIVolume module.


  • Parameters:
    • Iterations: Number of iterations to run the optimization method to estimate the registration parameters.
    • Grid Size: Number of grid points on interior of the fixed image. Larger grid sizes allow for finer registrations.
      • You can use this module to manually run a multiresolution registration by starting with a coarse grid, creating a resampled volume, and passing that resampled volume as the moving image for the next run with a finer grid.
      • Make sure you hit the tab key when changing the grid size.
    • Histogram bins: Number of histogram bins to use for Mattes Mutual Information. Reduce the number of bins if a deformable registration fails. If the number of bins is too large, the estimated PDFs will be a field of impulses and will inhibit reliable registration estimation.
    • Spatial samples: Number of spatial samples to use in estimating Mattes Mutual Information. Larger values yield more accurate PDFs and improved registration quality.
    • Constrain deformation: Constrain the deformation to the amount specified in Maximum Deformation
    • Maximum deformation: If Constrain Deformation is checked, limit the deformation to this amount.
    • Default pixel value: Default pixel value used if resampling a pixel outside of the volume.
  • IO
    • Intial Transform: Initial transform for aligning the fixed and moving image. Maps positions in the fixed coordinate frame to positions in the moving coordinate frame. This transform should be an affine or rigid transform. It is used an a bulk transform for the BSpline. Optional.
    • Fixed image: Fixed image to which to register
    • Moving image: Image to register to the fixed image
    • Output transform: Transform calculated that aligns the fixed and moving image. Maps positions from the fixed coordinate frame to the moving coordinate frame. Optional (specify an output transform or an output volume or both).
    • Output Volume: Resampled moving image to fixed image coordinate frame. Optional (specify an output transform or an output volume or both).
  • click Apply


  • a transform node: this will hold the grid control point deformation + any initial/bulk transform specified above as Initial Transform. If an input transform was specified, the result BSpline transformation will contain both and hence should not be applied to images that have already been resampled by that initial transform.
  • a resampled volume: no interpolation options can be chosen for this volume. To choose different interpolation schemes use the Resample Module
  • Note: the input volume is automatically placed under the newly generated BSpline transform node. The effects of this transform are not visible directly because the views cannot obtain a backwar mapping nonlinear transforms.

Examples, Use Cases & Tutorials

The BSpline registration module is used in the following examples of the Registration Case Library. Each case contains a step-by-step tutorial incl. parameter selections/presets.

Quick Tour of Features and Use

List all the panels in your interface, their features, what they mean, and how to use them. For instance:



Other modules or packages that are required for this module's use.


On the Dashboard, these tests verify that the module is working on various platforms:

Known bugs

Follow this link to the Slicer3 bug tracker.

Usability issues

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Source Code: [1]

More Information


This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.