Difference between revisions of "Handling deformable transforms in Slicer meeting minutes"
From NAMIC Wiki
(Page created) |
|||
Line 1: | Line 1: | ||
− | * | + | === Operations === |
− | ** | + | * Harden transform |
− | ** | + | *: Harden transform* is an existing capability that collapses linear transforms in a transform hierarchty. Hardening is available as a context menu on a (data) node in the Data module. When hardened, the data object is moved in the Data module to be outside all transformations with the effect of the transform hierarchy applied. *Harden transform* is only available for transform hierarchies involving linear transforms. |
− | * | + | * Clone and harden |
− | ** | + | *: Clone and harden* differs from the current *Harden transform* capability in two ways: |
− | ** Should we maintain a | + | *# Instead of the data being moved outside of all transforms, a "copy" of the data will be moved outside of all transforms. |
− | ** | + | *# All transform types, linear and deformable, will be part of the hardening. |
− | * | + | |
− | ** | + | === Proposed data type support === |
− | *** | + | * Scalar volumes |
− | ** | + | * Vector volumes |
+ | ** RGB | ||
+ | ** Vector | ||
+ | ** Displacement field | ||
+ | * Tensor volumes | ||
+ | * Models | ||
+ | * Fiducials and annotations | ||
+ | * Multivolume | ||
+ | |||
+ | === Questions === | ||
+ | * Should we maintain a link between the original and hardened data? | ||
+ | * Should only the hardened version be available for visualization? | ||
+ | * Can you clone and harden part of the transform hierarchy? | ||
+ | *: Harden just the non-linear portions | ||
+ | * Which tools do we use for each type of data to harden/warp the data? | ||
+ | * When hardening applied, the user would be presented with a list of modules that can harden each type of data? | ||
+ | * What happens to | ||
+ | ** pixel lattice - stays the "same" | ||
+ | *** create an axis-aligned bounding box in the world space, the number of pixels along each dimension will change | ||
+ | ** spacing - affected by the transform | ||
+ | ** orientation - affected by the transform | ||
+ | |||
+ | === Design === | ||
+ | * Module can register itself as the capable of hardening certain types of data. | ||
+ | ** For now the modules containing the algorithms (BRAINSResample, Resample Scalar/Vector/DWI Volume) will be known by the class performing the hardening | ||
+ | * Need to know the inverse of each transform | ||
+ | ** to transform the models and fiducials | ||
+ | ** to figure out how to define an appropriate lattice | ||
+ | *** need to back transform all the edge/face voxels to find the bounding box in the world space | ||
+ | * Three options presented to the user | ||
+ | ** Resample in source lattice | ||
+ | ** Resample into lattice that bounds the warping of the edge/face voxels | ||
+ | ** Resample into a target volume | ||
* Where? | * Where? | ||
− | ** Data module | + | ** Tie into the drag and drop of the Data module and prompt the user to harden the transform. |
− | ** Transforms module | + | ** Transforms module: display tree, and add a 'Harden' button to the panels |
** Subject Hierarchy right-click -> apply transform to branch | ** Subject Hierarchy right-click -> apply transform to branch | ||
− | |||
− | |||
− | |||
− | |||
− | + | === Subject hierarchy === | |
− | * | + | |
− | ** | + | * Transforms resulting from registration point back to the fixed and moving images. This information is stored in the *attributes* of the hierarchy node. |
+ | * Should we use the DICOM frame of reference concepts (frame of reference UID). | ||
+ | * Transform map between two frames of references. | ||
+ | * Currently, Slicer combines two concepts: | ||
+ | ** Frame of reference | ||
+ | *** Everything "under" a transform is in the same frame of reference | ||
+ | ** Transform that maps between two frames of references | ||
+ | *** The two frames of reference are implicitly defined by the transform hierarchy |
Revision as of 15:25, 18 June 2013
Home < Handling deformable transforms in Slicer meeting minutesOperations
- Harden transform
- Harden transform* is an existing capability that collapses linear transforms in a transform hierarchty. Hardening is available as a context menu on a (data) node in the Data module. When hardened, the data object is moved in the Data module to be outside all transformations with the effect of the transform hierarchy applied. *Harden transform* is only available for transform hierarchies involving linear transforms.
- Clone and harden
- Clone and harden* differs from the current *Harden transform* capability in two ways:
- Instead of the data being moved outside of all transforms, a "copy" of the data will be moved outside of all transforms.
- All transform types, linear and deformable, will be part of the hardening.
Proposed data type support
- Scalar volumes
- Vector volumes
- RGB
- Vector
- Displacement field
- Tensor volumes
- Models
- Fiducials and annotations
- Multivolume
Questions
- Should we maintain a link between the original and hardened data?
- Should only the hardened version be available for visualization?
- Can you clone and harden part of the transform hierarchy?
- Harden just the non-linear portions
- Which tools do we use for each type of data to harden/warp the data?
- When hardening applied, the user would be presented with a list of modules that can harden each type of data?
- What happens to
- pixel lattice - stays the "same"
- create an axis-aligned bounding box in the world space, the number of pixels along each dimension will change
- spacing - affected by the transform
- orientation - affected by the transform
- pixel lattice - stays the "same"
Design
- Module can register itself as the capable of hardening certain types of data.
- For now the modules containing the algorithms (BRAINSResample, Resample Scalar/Vector/DWI Volume) will be known by the class performing the hardening
- Need to know the inverse of each transform
- to transform the models and fiducials
- to figure out how to define an appropriate lattice
- need to back transform all the edge/face voxels to find the bounding box in the world space
- Three options presented to the user
- Resample in source lattice
- Resample into lattice that bounds the warping of the edge/face voxels
- Resample into a target volume
- Where?
- Tie into the drag and drop of the Data module and prompt the user to harden the transform.
- Transforms module: display tree, and add a 'Harden' button to the panels
- Subject Hierarchy right-click -> apply transform to branch
Subject hierarchy
- Transforms resulting from registration point back to the fixed and moving images. This information is stored in the *attributes* of the hierarchy node.
- Should we use the DICOM frame of reference concepts (frame of reference UID).
- Transform map between two frames of references.
- Currently, Slicer combines two concepts:
- Frame of reference
- Everything "under" a transform is in the same frame of reference
- Transform that maps between two frames of references
- The two frames of reference are implicitly defined by the transform hierarchy
- Frame of reference