2008 Summer Project Week:Nonlinear transforms
From NAMIC Wiki
Home < 2008 Summer Project Week:Nonlinear transforms
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 (Gary, Steve)
- 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. (Mike)
- 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)