Medical Imaging Interaction Toolkit
2018.4.99-389bf124
Medical Imaging Interaction Toolkit
|
Gantry tilt analysis result. More...
#include <mitkDicomSeriesReader.h>
Public Types | |
typedef itk::Point< double, 3 > | Point3Dd |
typedef itk::Vector< double, 3 > | Vector3Dd |
Public Member Functions | |
GantryTiltInformation () | |
Just so we can create empty instances for assigning results later. More... | |
GantryTiltInformation (const Point3D &origin1, const Point3D &origin2, const Vector3D &right, const Vector3D &up, unsigned int numberOfSlicesApart) | |
THE constructor, which does all the calculations. More... | |
bool | IsSheared () const |
Whether the slices were sheared. More... | |
bool | IsRegularGantryTilt () const |
Whether the shearing is a gantry tilt or more complicated. More... | |
double | GetMatrixCoefficientForCorrectionInWorldCoordinates () const |
The offset distance in Y direction for each slice in mm (describes the tilt result). More... | |
double | GetRealZSpacing () const |
The z / inter-slice spacing. Needed to correct ImageSeriesReader's result. More... | |
double | GetTiltCorrectedAdditionalSize () const |
The shift between first and last slice in mm. More... | |
double | GetTiltAngleInDegrees () const |
Calculated tilt angle in degrees. More... | |
Protected Member Functions | |
Point3D | projectPointOnLine (Point3Dd p, Point3Dd lineOrigin, Vector3Dd lineDirection) |
Projection of point p onto line through lineOrigin in direction of lineDirection. More... | |
Protected Attributes | |
double | m_ShiftUp |
double | m_ShiftRight |
double | m_ShiftNormal |
double | m_ITKAssumedSliceSpacing |
unsigned int | m_NumberOfSlicesApart |
Gantry tilt analysis result.
Takes geometry information for two slices of a DICOM series and calculates whether these fit into an orthogonal block or not. If NOT, they can either be the result of an acquisition with gantry tilt OR completly broken by some shearing transformation.
Most calculations are done in the constructor, results can then be read via the remaining methods.
Definition at line 655 of file mitkDicomSeriesReader.h.
typedef itk::Point<double, 3> mitk::DicomSeriesReader::GantryTiltInformation::Point3Dd |
Definition at line 659 of file mitkDicomSeriesReader.h.
typedef itk::Vector<double, 3> mitk::DicomSeriesReader::GantryTiltInformation::Vector3Dd |
Definition at line 660 of file mitkDicomSeriesReader.h.
mitk::DicomSeriesReader::GantryTiltInformation::GantryTiltInformation | ( | ) |
Just so we can create empty instances for assigning results later.
Definition at line 17 of file mitkDicomSR_GantryTiltInformation.cpp.
mitk::DicomSeriesReader::GantryTiltInformation::GantryTiltInformation | ( | const Point3D & | origin1, |
const Point3D & | origin2, | ||
const Vector3D & | right, | ||
const Vector3D & | up, | ||
unsigned int | numberOfSlicesApart | ||
) |
THE constructor, which does all the calculations.
Determining the amount of tilt is done by checking the distances of origin1 from planes through origin2. Two planes are considered:
The tilt angle can then be calculated from these distances
origin1 | origin of the first slice |
origin2 | origin of the second slice |
right | right/up describe the orientatation of borth slices |
up | right/up describe the orientatation of borth slices |
numberOfSlicesApart | how many slices are the given origins apart (1 for neighboring slices) |
Definition at line 34 of file mitkDicomSR_GantryTiltInformation.cpp.
References doublepoint, doublevector, m_ITKAssumedSliceSpacing, m_ShiftNormal, m_ShiftRight, m_ShiftUp, MITK_DEBUG, and projectPointOnLine().
double mitk::DicomSeriesReader::GantryTiltInformation::GetMatrixCoefficientForCorrectionInWorldCoordinates | ( | ) | const |
The offset distance in Y direction for each slice in mm (describes the tilt result).
Definition at line 145 of file mitkDicomSR_GantryTiltInformation.cpp.
References m_NumberOfSlicesApart, and m_ShiftUp.
double mitk::DicomSeriesReader::GantryTiltInformation::GetRealZSpacing | ( | ) | const |
The z / inter-slice spacing. Needed to correct ImageSeriesReader's result.
Definition at line 151 of file mitkDicomSR_GantryTiltInformation.cpp.
References m_NumberOfSlicesApart, and m_ShiftNormal.
double mitk::DicomSeriesReader::GantryTiltInformation::GetTiltAngleInDegrees | ( | ) | const |
Calculated tilt angle in degrees.
Definition at line 140 of file mitkDicomSR_GantryTiltInformation.cpp.
References m_ShiftNormal, and m_ShiftUp.
double mitk::DicomSeriesReader::GantryTiltInformation::GetTiltCorrectedAdditionalSize | ( | ) | const |
The shift between first and last slice in mm.
Needed to resize an orthogonal image volume.
Definition at line 139 of file mitkDicomSR_GantryTiltInformation.cpp.
References m_ShiftUp.
bool mitk::DicomSeriesReader::GantryTiltInformation::IsRegularGantryTilt | ( | ) | const |
Whether the shearing is a gantry tilt or more complicated.
Gantry tilt will only produce shifts in ONE orientation, not in both.
Since the correction code currently only coveres one tilt direction AND we don't know of medical images with two tilt directions, the loading code wants to check if our assumptions are true.
Definition at line 161 of file mitkDicomSR_GantryTiltInformation.cpp.
References m_ShiftRight, and m_ShiftUp.
Referenced by mitk::DicomSeriesReader::LoadDicom().
bool mitk::DicomSeriesReader::GantryTiltInformation::IsSheared | ( | ) | const |
Whether the slices were sheared.
True if any of the shifts along right or up vector are non-zero.
Definition at line 156 of file mitkDicomSR_GantryTiltInformation.cpp.
References m_ShiftRight, and m_ShiftUp.
Referenced by mitk::DicomSeriesReader::LoadDicom().
|
protected |
Projection of point p onto line through lineOrigin in direction of lineDirection.
See illustration at http://mo.mathematik.uni-stuttgart.de/inhalt/aussage/aussage472/
vector(lineOrigin,p) = normal * ( innerproduct((p - lineOrigin),normal) / squared-length(normal) )
Definition at line 120 of file mitkDicomSR_GantryTiltInformation.cpp.
Referenced by GantryTiltInformation().
|
protected |
Definition at line 738 of file mitkDicomSeriesReader.h.
Referenced by GantryTiltInformation().
|
protected |
Definition at line 739 of file mitkDicomSeriesReader.h.
Referenced by GetMatrixCoefficientForCorrectionInWorldCoordinates(), and GetRealZSpacing().
|
protected |
Definition at line 737 of file mitkDicomSeriesReader.h.
Referenced by GantryTiltInformation(), GetRealZSpacing(), and GetTiltAngleInDegrees().
|
protected |
Definition at line 736 of file mitkDicomSeriesReader.h.
Referenced by GantryTiltInformation(), IsRegularGantryTilt(), and IsSheared().
|
protected |
Definition at line 735 of file mitkDicomSeriesReader.h.
Referenced by GantryTiltInformation(), GetMatrixCoefficientForCorrectionInWorldCoordinates(), GetTiltAngleInDegrees(), GetTiltCorrectedAdditionalSize(), IsRegularGantryTilt(), and IsSheared().