2008 Summer Project Week:Nonlinear transforms

From NAMIC Wiki
Jump to: navigation, search
Home < 2008 Summer Project Week:Nonlinear transforms
MRML scene graph.
Transform node in a MRML scene.



Key Investigators

  • GE Research: Jim Miller, Bess Lee
  • Isomics: Steve Pieper, Alex Y.


Objective

Extend Slicer's suite of transformations to include nonlinear transformations (B-spline, deformation grids) in the MRML scene, visualization pipeline, and command line modules.


Approach, Plan

  • Develop new MRML nodes and MRML storage nodes for B-splines and deformation grids.
    • vtkITK wrapper around ITK classes
  • Add attribute to transform nodes to indicate whether they represent a "Transform to World/Parent" or "Transform from World/Parent"
  • Extend visualization system for "Transform to World/Parent" or "Transform from World/Parent"
  • Extend command line modules to annotate a transformation as a "Transform to World/Parent" or "Transform from World/Parent"
  • Identify places in slicer3 code where linear transforms are assumed - these either need generalization or informative warning/error messages

Progress

Concrete

  • MRML nodes and storage nodes for B-spline and deformation grids "done".
  • "Copied" the "Linear registration" module to "Rigid registration"
  • "Affine registration" now a shared object library (much faster)

Discussions

  • Eulerian/Langrangian viewpoint discussions
  • Transform file format "should" indicate the coordinate frames and direction a transform maps* "Add Transform..." menu added
  • Coordinate frame manager to map between any two data sets verses mapping to parent/world.
    • Named coordinate frames, coordinate frame for new data is labeled as the name of the dataset
    • If transformation between coordinate frames is "unknown", Slicer will initially assume they are the same coordinate frame (identity)

Todo

  • itkDisplacementFieldTransform
  • Transform attribute of coordinate frame
  • Coordinate frame manager from Mike Halle
    • Maps between any two datasets not necessarily to world, have multiple transformation "estimates" for a single coordinate frame mapping.
  • Visualization support?
    • TransformDisplayNode?
  • Need to patch itkTransformFactory (trunk and release) to register BSplines for 2D and 3D for floats and doubles (Luis)


References