CT影像文件格式DICOM详解
DICOM简介
DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。DICOM被广泛应用于放射医疗,心血管成像以及放射诊疗诊断设备(X射线,CT,核磁共振,超声等),并且在眼科和牙科等其它医学领域得到越来越深入广泛的应用。所有患者的医学图像都以 DICOM 文件格式进行存储。这个格式包含关于患者的 PHI(protected health information,https://en.wikipedia.org/wiki/Protected_health_information )信息,例如姓名,性别,年龄,以及其他图像相关信息比如捕获并生成图像的设备信息,医疗的一些上下文相关信息等。医学图像设备生成 DICOM 文件,医生使用 DICOM 阅读器(能够显示 DICOM 图像的计算机软件)阅读并对图像中发现的问题进行诊断。本人推荐的DICOM 阅读器为Mango
目前采用的标准是DICOM3.0,每一张图像中都携带着大量的信息,这些信息具体可以分为以下四类:(a)Patient(b)Study(c)Series(d)Image。每一个DICOM Tag都是由两个十六进制数的组合来确定的,分别为Group和Element。如(0010,0010)这个Tag表示的是Patient’s Name,它存储着这张DICOM图像的患者姓名。
一张CT图像有 512x512 个像素点,在dicom文件中每个像素由2字节表示,所以每张图片约512KB大小。图像中每个像素都是整数,专业名称为 Hounsfield scale 或 CT Number,是描述物质的放射密度的量化值(参考Wikipedia)。下表为常见物质的HU值。
DICOM信息获取
我们暂时不关注dicom信息的具体格式,我们关注如何用python获取到相关的信息以及那些信息是比较重要的。我们能获取到的信息分为两类:1.DICOM文件信息 2.DICOM具体的数据
获取信息的相关代码如下:
import pydicom as dicom
DATA_PATH = 'J:/dataset/LIDC-IDRI/LIDC-IDRI/LIDC-IDRI-0001/01-01-2000-30178/3000566-03192/'
#获取Dicom文件信息说明
f = dicom.read_file(DATA_PATH + '000001.dcm')
print(f)
import SimpleITK as sitk
import cv2
import matplotlib.pyplot as plt
#获取Dicom数据
ds = sitk.ReadImage(DATA_PATH