Dicom圖像解析


醫療圖像解析

Dicom

后綴: .dcm.DCM
Dicom中規定的坐標系是以人坐標系為絕對坐標系的,規定X軸正向指向病人的左側,Y軸正向指向病人的背部,Z軸正向指向病人的頭部。但是,坐標點的位置,每個廠商都有自己的看法
下圖展示了成像過程中對應的坐標系
成像坐標系

三視圖

圖片信息中的Tag說明
在DICOM中,是通過Image Position和Image Orientation來描述當前的圖像和人體坐標系的相對位置的。
解析舉例

import dicom
import pylab
import os


dcm_img_base_url = "/home/fan/datas/dcmFile"
ds = dicom.read_file(os.path.join(dcm_img_base_url, "N2D_0020.dcm"))
print("圖片中存在的屬性: ", ds.dir("pat"))
print("病人方位: ", ds.PatientOrientation)
# 以下兩個屬性標簽描述圖像位置信息
print("圖像病人方向: ", ds.ImageOrientationPatient)
print("圖像病人位置: ", ds.ImagePositionPatient)
# CT矩陣
pix = ds.pixel_array
# 打印圖片
pylab.imshow(pix, cmap=pylab.cm.bone)
pylab.show()

ds1 = dicom.read_file(os.path.join(dcm_img_base_url, "N2D_0140.dcm"))
pix1 = ds1.pixel_array
pylab.imshow(pix1, cmap=pylab.cm.bone)
pylab.show()

以上使用的圖片為ADNI數據集中的一個.nii圖像轉換為Dicom圖像后的一個圖片
圖片中存在的部分信息為
ImageOrientationPatient: ['1', '-2.18345624778243e-11', '0', '2.1834562200241e-11', '1', '2.1834562200241e-11']
ImagePositionPatient: ['-101.501693725586', '-141.694915766789', '-90.989616394043']
之后我們需要使用這兩個量來進行定位線的計算,VR,MPR的空間計算
這兩個量使用的空間坐標系

原始坐標系為O,O1坐標系繞z軸以O系統的基礎上旋轉了θ的一個角度,我們可以把這個矩陣記錄為

\[A_0^1 = \begin{bmatrix} C\theta & -S\theta & 0 & 0 \\ S\theta & C\theta & 0 & 0 \\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1\\ \end{bmatrix} \]

通過一系列這樣的變換,我們可以得到最終的變換矩陣為

\[T = A_0^1A_1^2{\cdots}A_n^m \]

把T記為

\[T = \begin{bmatrix} X_x & Y_x & Z_x & S_x \\ X_y & Y_y & Z_y & S_y \\ X_z & Y_z & Z_z & S_z \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} \]

我們的圖像是一個2維的量,由於當前圖像像素點的z方向坐標相對於當前圖像的坐標系的值都為0,當前圖像的坐標點可以用(x,y,0)的向量來表示,表示在齊次坐標方式就為(x,y,0,1),那么,這時想要計算出圖像上的某個點相對於原始坐標系的坐標,就直接和轉換矩陣T相乘即可,記為

\[\begin{bmatrix} x_o \\ y_o \\ z_o \\ 0 \end{bmatrix} = T\begin{bmatrix} x \\ y \\ 0 \\ 1 \end{bmatrix} \Rightarrow \begin{bmatrix} x_o \\ y_o \\ z_o \\ 0 \end{bmatrix} = \begin{bmatrix} X_x & Y_x & Z_x & S_x \\ X_y & Y_y & Z_y & S_y \\ X_z & Y_z & Z_z & S_z \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} x \\ y \\ 0 \\ 1 \end{bmatrix} \]

Image Orientation的6個量就顯而易見為

\[X_x, X_y, X_z, Y_x, Y_y, Y_z \]

Image Position中的三個量為

\[S_x, S_y, S_z \]

引用

Dicom中的Image Orientation/Position的理解和應用
醫學影像處理軟件之Image Orientation相關介紹
醫學圖像數據格式: DICOM


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM