Medical Imaging Interaction Toolkit  2022.10.99-65af2799 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...

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

## Detailed Description

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 completely broken by some shearing transformation.

Most calculations are done in the constructor, results can then be read via the remaining methods.

Definition at line 665 of file mitkDicomSeriesReader.h.

## ◆ Point3Dd

Definition at line 669 of file mitkDicomSeriesReader.h.

## ◆ Vector3Dd

Definition at line 670 of file mitkDicomSeriesReader.h.

## ◆ GantryTiltInformation() [1/2]

Just so we can create empty instances for assigning results later.

## ◆ GantryTiltInformation() [2/2]

 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:

• normal vector along normal of slices (right x up): gives the slice distance
• normal vector along orientation vector "up": gives the shift parallel to the plane orientation

The tilt angle can then be calculated from these distances

Parameters
 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)

## ◆ GetMatrixCoefficientForCorrectionInWorldCoordinates()

The offset distance in Y direction for each slice in mm (describes the tilt result).

## ◆ GetRealZSpacing()

The z / inter-slice spacing. Needed to correct ImageSeriesReader's result.

## ◆ GetTiltAngleInDegrees()

Calculated tilt angle in degrees.

The shift between first and last slice in mm.

Needed to resize an orthogonal image volume.

## ◆ IsRegularGantryTilt()

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 covers 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.

## ◆ IsSheared()

Whether the slices were sheared.

True if any of the shifts along right or up vector are non-zero.

## ◆ projectPointOnLine()

 Point3D mitk::DicomSeriesReader::GantryTiltInformation::projectPointOnLine ( Point3Dd p, Point3Dd lineOrigin, Vector3Dd lineDirection )
protected

Projection of point p onto line through lineOrigin in direction of lineDirection.

## ◆ m_ITKAssumedSliceSpacing

protected

Definition at line 748 of file mitkDicomSeriesReader.h.

## ◆ m_NumberOfSlicesApart

protected

Definition at line 749 of file mitkDicomSeriesReader.h.

## ◆ m_ShiftNormal

protected

Definition at line 747 of file mitkDicomSeriesReader.h.