How to handle orientation of DICOM images
From IGSTK
Contents |
Preface
This page covers the discussion on how to handle orientation information in DICIOM images.
Motivation
IGSTK, in its current state, ignores orientation information in the DICOM header. In other words, IGSTK assumes the DICOM image volume to be always orthogonal to the patient coordinate system ( or scanner coordinate system ).
Proposal
I propose two changes to the toolkit (specifically the ImageReader classes) to handle orientations. First, we use itk::OrientedImage instead of itk::Image. itk::OrientImage is a recent addition to ITK and was motivated by the same reason to incorporate orientation information into the image. A thorough discussion on this proposal is give in http://www.itk.org/Wiki/Proposals:Orientation . More information about itk::OrientedImage can be found also at http://www.itk.org/Doxygen/html/classitk_1_1OrientedImage.html.
Second, when we set the image to the ImageSpatialObject, we will also apply the orientation transfrom ( which will be extracted from itk:OrientImage) to the ImageSpatialObject. The correct place to do this will be in SetImageProcessing() methods as shown below.
void ImageSpatialOBject<,>::SetImageProcessing() { ... ...
//Extract direction cosines, origin from m_Image which will be of itk::OrientedImage type
origin = m_Image->GetOrigin(); dcosines = m_Image->GetDirection();
//Generate a transform based on origin and dcosines... transfrom =....;
m_ImageSpatialObject->SetTransfrom(transfrom);
}
Plan of Action
To implement the above proposal, here is the envisaged plan of actions.
- Add test programs for quantitative evaluation of our visualization components. Visualization related test programs that we have now are all non-quantitative.
- Implement the proposals suggested above
- Add dicom dataset with orientations to the Sandbox (if available) or simulate non-orthogonal orientation by modifying the dicom headers of the existing dicom datasets.
- Validate the new additions to the toolkit using the dicom dataset with orientations
