1. 좌표 시스템의 기본 구성
의료영상을 다루는 시스템 별로 주요 적으로 활용하는 이미지 평면의 기준 좌표를 정리한다.
좌표계는 CT, MRI 의 장비 기준의 좌표계, 해부학적인 좌표계, 그리고 이미지 좌표계로 구분할 수 있다.
우선 의료 영상 분석을 위해서는 CT, MRI 장비를 촬영할 것이고 DICOM 의료영상 데이터로 저장하게 된다.
촬영된 영상데이터는 아래와 같이 환자의 입장에서 바라보는 것이 아니라 거울에 비춰진 것 처럼 좌우가 반대되어 바라보는 위치에서 영상을 마주하게 된다.
참고로 의료영상에서 보편적인것이 DICOM 이기는 하지만 최근 NIfTI format 의 영상도 많이 사용되는 것 같다. 두개의 데이터는 크게 다르지 않으나 생겨난 목적과 작은 차이가 있다.
DICOM ( Digital Imaging and Communications in Medicine)
NIfTI (The Neuroimaging Informatics Technology Initiative )
- 헷갈리는 좌표계 변환 문제 해결
- 불필요한 데이터 최소화
- 3D 데이터를 목적으로 함
좀 더 정확한 차이점을 알고 싶으면 아래를 참조하자. 간단히 잘 설명하고 있다.
What’s the difference between DICOM and NIfTI? (encord.com)
2. DICOM 좌표계 (LPS)
DICOM 좌표계를 해부학 좌표계로 변환하면 LPS 좌표계로 나타낼수 있다.
DICOM is a standard for handling digital imaging in medicine. DICOM is also used for ultrasound and X-ray photography and each DICOM file by itself stores a 2D image. For MRI data a stack of those files is used to describe the volumetric data and the origin is at the magnet isocenter, which coincides with the center of the gradient coils. The definition of the coordinate system is
- the origin is at the scanner origin, which is the center of the gradient coil
- x increases from right to left
- y increases from anterior to posterior
- z increases from inferior to superior
3.3D Slicer, NIfTI (RAS)
LPS 와 다른 대표적인 좌표계는 RAS 이다. RAS는 Kitware 사의 3D Slicer 프로그램에서 사용하는 좌표계이며 NIfTI 좌표계와 동일한 좌표계이다.
The NIfTI format has been adapted from the Analyze 7.5 format (see this website for more information). It supports two methods to specify the coordinate systems: one related to the scanner coordinate system (qform) and one related to a standard coordinate system (sform). From a technical point of view both can be used simultaneously and/or interchangeably. Depending on the qform_code or sform_code, the origin of the coordinate system corresponds (1) to the scanner origin, (2) is arbitrary, or (3,4) is aligned with AC according to the MNI or Talairach-Tournoux coordinate systems. The default orientation of the coordinate system axes is assumed to be
- The x-axis increases from left to right
- The y-axis increases from posterior to anterior
- The z-axis increases from inferior to superior
See also here (search for “Orientation information”). In case the qform_code or sform_code is 2, the coordinates are aligned to another file, or to the “truth” (with an arbitrary coordinate center). In that case the assumption that the orientation of the world coordinate system is RAS may not hold.
Warning: various software implementations that write NIfTI files are inconsistent with assigning the qform_code and/or sform_code, hence you should be cautious with the interpretation of the coordinate system.
The paper The first step for neuroimaging data analysis: DICOM to NIfTI conversion explains it very well. See also this page for more information about the DICOM coordinate system.
4. VTK, ITK 이미지 좌표계
DICOM 이미지는 좌상단을 원점으로 하지만 VTK와 ITK는 좌하단을 원점으로 메모리에 저장한다.
VTK와 ITK의 메모리에 저장된 원점은 동일하지만 읽는 방식이 다르다.
VTK는 실제 저장된 데이터와 같은 방식으로 mapping을 하기위해 내부적으로 vtkImageFlip filter를 수행하여 y 축으로 flip되어 저장되도록 하지만 ITK는 그렇지 않는다. 그래서 ITK <-> VTK 이미지를 변환하면 Flip 된 이미지로 표시된다.
5. Rendering 비교하기
본 Rendering은 각 좌표계 변환을 vtkImageReslice 알고리즘에서 SetResliceAxes를 이용하여 구성한다.
SetReliseAxes의 경우는 이미지 원본 데이터에서 새로운 좌표계 축을 설정하여 같은 데이터를 표현하도록 한다.
주의) 입력하는 vtkTransform으로 데이터를 변환하는 것이 아니라, 좌표계의 축을 새롭게 입력하여 구성한다.
VTK : 기본 dicom series 를 그대로 표시한 경우
- 영상의 좌측 하단을 좌표계 원점으로 한다. Z축방향으로 Slice를 갖는 volume으로 구성한다
DicomToVtk(VtkToDicom) : dicom 좌표계로 표시한다.
- 영상의 우측 상단을 좌표계 원점으로 하여 volume을 표시한다.
- VtkToDicom transformation 과 DicomToVtk는 동일하다.
- Dicom 좌표계로 변환을 하게 되면 Z축 방향이 반대가 되어 Slice가 - 방향으로 이동하게 된다.
VtkToCt : CT 좌표계로 표시한다
- Dicom과 CT는 같은 회전 축을 갖는다.
- 하지만, CT 장비의 원점을 기준으로 하고 있으므로, Dicom 영상의 첫 slice 위치만큼의 Translation 이 발생한다.
CtToVtk : 잘못된 적용방법이다.
- 처음 Vtk 이미지데이터를 Ct 좌표계 기준으로 표시하기위해 적용한 Transformation 이지만, 이는 SetResliceAxes에 잘못된 사용방법에 의한 결과이다.
6. 참조문헌
- Coordinate systems - Slicer Wiki
- Slicer:VTK ITK Coordinates - Slicer Wiki
- How are the different head and MRI coordinate systems defined? - FieldTrip toolbox