Reslicing P3 REQ
From IGSTK
Contents |
Links to Discussions Notes
ImageReslice Definitions
ImageReslice Requirements
- Provide capability for reslicing based on both:
- Manual / Preop. / Mouse mode
- Automatic / Intraop. / Tracker mode
- Provide capability for displaying slices in both 2D and 3D views:
- 2DImageResliceRep
- 3DImageResliceRep
- Provide capability for both orthogonal and oblique reslicing
- Orthogonal slices ( Axial, Sagital and Coronal = ACS )
- Off-orthogonal slices ( Perpendicular view , Off-Sagital and Off-Axial with reslicing position at the center )
- Oblique slices ( PlaneOrientationWithZAxesNormal, PlaneOrientationWithYAxesNormal and PlaneOrientationWithXAxesNormal relative to the tool (6DOF) )
- Accept and handle both six DOF and five DOF tracker tools
- Six DOF tracker tools provide all the necessary orientation and postion information
- With five DOF tracker tools, additional information is required. These includes
- Coordinate axis of the image volume(for off-axial, off-sagittal views)
- Projection up vector (Similar to endoscope fly through view)
- Surgical path ( Similar to needle biopsy applications )
- Ability to autoreslice by observing Tracker tool transform modified event
- Question: do we need capability to auto-reslice based on spatial object position/orientation
- Ability to automatically change the camera view parameters to best display the resliced image
- Ability to synchronize multiple ResliceReps / Views
ImageReslice Design
The IGSTK reslicing component will provide support for three types of reslicing operations
- Orthogonal: Reslicing plane position is defined by the tool spatial object and the input image coordinate system defines the three orthogonal orientations
- Oblique: All the parameters of the reslcing plane are defined by the tool spatial object ( The tool should be of 6DOF tracker tool type )
- OffOrthogonal : The parameters of the reslicing plane are defined by the tool spatial object and the input image/
Each mode has three orientation types
- Orthogonal : Axial, Coronal and Sagital as defined by the input image coordinate system.
- Oblique : PlaneOrientationWithXAxesNormal, PlaneOrientationWithYAxesNormal and PlaneOrientationWithZAxesNormal as defined by the tracker tool spatial object.
- OffOrthogonal : Perpendicular, Off-Axial and Off-Sagital
The reslice operation will be implemented using the following two classes
- igstkImageReslicePlaneSpatialObject : Generates the reslicing plane equation
- igstkImageResliceSpatialObjectRepresentation : Reslice the input image using the reslicing plane equation and generate the resliced plane image representation
Note: The motivation behind having a reslice plane spatial object
- If needed, one can connect the view directly to the reslicing plane spatial object
- The reslicing plane computation will be part of IGSTK time synchronization pipeline
- To keep a consistent design with the rest of the toolkit( spatialObject->SpatialObjectRepresentation connection)
- Multiple image reslice representation images can be connected to a single reslicing plane spatial object.
igstkImageReslicePlaneSpatialObject
This class generates reslicing plane equation
Interface design
Enum definition for reslicing mode ( Orthogonal, Oblique, OffOrthogonal ) Enum definition for Orientation types ( Axial, Sagital, Coronal, Perpendicular, Off-Axial, Off-Sagital )
To generate reslicing cutting plane function, the following inputs are required
- Input image spatial object
- Input tool spatial object
- Orientation type
- Reslicing mode
void RequestSetImageSpatialObject( const ImageSpatialObjectType * iso) void RequestSetReslicingMode( ReslicingMode mode) void RequestSetOrientationType ( OrientationType orientation) void RequestSetToolSpatialOBject( SpatialObjectType * toolSpatialObject ) void RequestComputeReslicePlane(); void RequestGetReslicePlane();
igstkImageResliceSpatialObjectRepresentation
This class generates resliced image representation.
Interface design
Two inputs are required
- Image spatial object
- Image reslicing plane spatial object
void RequestSetImageSpatialObject( const ImageSpatialObjectType * iso) void RequestSetImageReslicePlaneSpatialObject ( ImageReslicePlaneSpatialObjectType plane)
Oblique Reslicing mode
Miscellaneous
- Reslicing transform time stamp should be composed of the time stamp of the tool spatial object transform and image spatial object.
- Usage of image orientation (Axial, Sagital and Coronal) should be removed from the View. That will be handled by orthogonal image spatial object representation
- API will be provided in ImageReslicePlaneSpatialObject class to handle slider-driven and mouse-driven reslicing operations.
- igstk::View class contains vtkCamera and a coordinate system. In analogy, vtkCamera corresponds to the lens of a physical camera and the cooridnate system corresponds to the film in the camera. Hence, we will have to maintain an identity transform relationship between vtkCamera and Coordinate system inside igstk::View
- vtkImageReslice Vs vtkCutter
- For oblique mode reslicing, the three orientations are defined assuming the tool-axis is oriented in the direction of z-axis ( Needle pointed in the direction of positive z-axis ).
- The appropriate calibration transform has to be specified to the tracker tool to re-orient the tool-axis point in the z direction
- Different tracking devices follow different coordinate system convention for the tools/markers and calibration transform should be set accordingly.
- As a guideline, we can provide users calibration transforms that align the tool-axis in the z direction for the tracker types supported in IGSTK.

