1、DICOM简介
DICOM(Digital Imaging and Communications in Medicine):医学影像成像和通讯标准。
所有患者的医学图像都以DICOM文件格式存储。这个格式包含关于患者的PHI(Protected Health Information)信息,例如患者姓名,患者性别以及一些医学上的信息。
1、基于DICOM3.0标准,每一张图都携带大量的信息,可以细分为以下四类:
- Patient
- Study
- Series
- Image
每一项信息都可以用DICOM TAG来标识,DICOM TAG由两个十六进制数组成,即(Group,Element)(之后详细说明)
2、每一项信息被包装成最基本的单元:Data Element(数据元素)。每个Data Element 由四部分组成:
- DICOM TAG :存储该项信息的标识
- VR(Value Representation):存储描述该项信息的数据类型
- value length :存储描述该项信息的数据长度
- value:存储描述该项信息的数据值
2、Pydicom库处理DICOM数据信息
1、pydicom的API参考
data_element(个人,姓名) #返回与元素关键字name对应的DataElement
dir(自身,\*过滤器) #返回数据集中的DataElement关键字的字符顺序列表
value(自) #返回DICOM标签值以模拟dict
以上只列出了下文会用到的部分,详情请查看Pydicom官网
2、pydicom具体代码(画图需要额外导入库)
import pydicom #导入所需要的库
import pylab
#读取该dcm文件,两者都可以,亲测有效
ds = pydicom.read_file("dicom/image/000001.dcm")
ds = pydicom.dcmread("dicom/image/000001.dcm")
#查看有哪些属性
print(ds.dir()) #查看全部的属性
print(ds.dir("pat")) #查看带关键字pat的属性
#查看属性对应的具体值
print(ds.PatientName) #查看PatientName属性对应的具体值,想查看哪个可以直接·出来
#打印完整的数据元素,包括(Group,Element),VR,Value,两种方式都可以
data_element = ds.data_element("PatientID")
print(data_element.tag,data_element.VR,data_element.value)
print(ds.data_element('PatientID'))
#原始二进制文件
pixel_bytes =ds.PixelData
#像素值矩阵
pix = ds.pixel_array
#打印矩阵维度
print(pix.shape)
#打印dicom图片
pylab.imshow(pix,cmap=pylab.cm.bone) #cmap 表示 colormap
pylab.show()
将运行的结果和第三部分的分类相结合,可以更好的理解DICOM数据信息!
3、DICOM TAG与VR分类
1、DICOM TAG

本文介绍了DICOM医学图像标准及其包含的Patient、Study、Series和Image四类信息。通过Pydicom库,我们可以解析DICOM文件,理解Data Element的组成部分,并利用其API处理和分析DICOM数据。同时,文章还提及了DICOM TAG和VR(Value Representation)的概念。




6150

被折叠的 条评论
为什么被折叠?



