我的编程空间,编程开发者的网络收藏夹
学习永远不晚

医学图像DICOM文件解析——DICOM内部信息详解篇

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

医学图像DICOM文件解析——DICOM内部信息详解篇

文章目录

一、医学影像学介绍

   医学影像学Medical Imaging,是研究借助于某种介质(如X射线、电磁场、超声波等)与人体相互作用,把人体内部组织器官结构、密度以影像方式表现出来,供诊断医师根据影像提供的信息进行判断,从而对人体健康状况进行评价的一门科学,包括医学成像系统和医学图像处理两方面相对独立的研究方向。
   仪器主要包括X光成像仪器、CT(普通CT、螺旋CT)、正子扫描(PET)、超声(分B超、彩色多普勒超声、心脏彩超、三维彩超)、核磁共振成像(MRI)、心电图仪器、脑电图仪器等。

二、DICOM文件简介

  DICOM(Digital Imaging and Communications in Medicine) 即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。DICOM被广泛应用于放射医疗,心血管成像以及放射诊疗诊断设备(X射线,CT,核磁共振,超声等),并且在眼科和牙科等其它医学领域得到越来越深入广泛的应用。所有患者的医学图像都以 DICOM 文件格式进行存储。这个格式包含关于患者的PHI(protected health information)信息,例如姓名,性别,年龄,以及其他图像相关信息比如捕获并生成图像的设备信息,医疗的一些上下文相关信息等。医学图像设备生成 DICOM 文件,医生使用 DICOM 阅读器(能够显示 DICOM 图像的计算机软件)阅读并对图像中发现的问题进行诊断。

  目前采用的标准是DICOM3.0,每一张图像中都携带着大量的信息,这些信息具体可以分为以下四类:(a)Patient(b)Study(c)Series(d)Image。每一个DICOM Tag都是由两个十六进制数的组合来确定的,分别为Group和Element。如(0010,0010)这个Tag表示的是Patient’s Name,它存储着这张DICOM图像的患者姓名。

  基于C++的DCMTK、基于Java的dcm4che以及基于python的pydicom,都是非常优秀的解释DICOM标准的第三方库,通过在工程中引入它们可以避免软件开发人员去进行底层的解析工作,可为项目开发提高效率。

  目前例如CT,核磁共振,超声等利用精确准直的X线束、γ射线、超声波等,与灵敏度极高的探测器一同围绕人体的某一部位作一个接一个的断面扫描,所以扫描后得到的图像是多层的图像,而我们把一层层的图像在z轴上堆叠起来就可以形成三维图像(这就涉及到三维重建的问题),这时,每一层的图像我们都可以存在dicom文件中(当然,dicom文件不是单纯的像素信息,它还有很多的数据头部信息),如下图,我们的目的就是要把在这些数据头部信息和像素信息从一系列dicom文件中读取出来。
在这里插入图片描述
   DICOM文件是指按照DICOM标准而存储的医学文件,一般由一个DICOM文件头和一个DICOM数据集合组成,结构图如下图:
在这里插入图片描述
DICOM文件头包含了标识数据集合的相关信息,每个DICOM文件都必须包括一个文件头:

  • 文件前言,由128个字节组成;
  • DICOM前缀,可根据这长为4个字节的字符串是否等于“DICM”来判断该文件是不是DICOM文件;
  • 文件信息元素

三、DICOM内部信息详解(DICOM Tag与VR)

   DICOM数据集是DICOM文件的主要组成部分,其由DICOM数据元素按照指定的顺序排列。数据元素最基本的数据单元是数据元,按照TAG从小到大顺序排列,即一个数据元表示一个TAG。数据元主要由4个部分组成:

  • TAG号:由4个字节组成,包括2字节的组号和2字节的元素号(例如:0010 0040 表示患者性别,其中的组号:0002描述设备通讯信息、0008描述特征参数、0010描述患者信息、0028描述图像信息参数)。需要的DICOM文件相关数据时,就是根据TAG来获取。
  • 值表示(VR,value representation):由两个字节的字符组成,存储描述该项数据元信息的数据类型,包含例如:LO(Long String,长字符串)、IS(Interger String,整型字符串),DA(data,日期)等等共27种数据类型。
  • 值长度(value length):存储描述该项信息的数据长度。
  • 值域(value):存储描述该项信息的数据值。

   其中数据元信息可以根据信息的不同,分为4类:-Patient-Study-Series-Image-。可以理解为一个患者(patient)可以做多次检查(study),一次检查包含多个检查部位(series),而每个检查部位都有一张或多张相应的影像图像(image)。

1.常见的TAG

(1) Patient Tag

GroupElementTag Description中文解释数据类型(VR)
00100010Patient’s Name患者姓名PN
00100020Patient ID患者IDLO
00100030Patient’s Birth Date患者出生日期DA
00100032Patient’s Birth Time患者出生时间TM
00100040Patient’s Sex患者性别CS
00101030Patient’s Weight患者体重DS
001021C0Pregnancy Status怀孕状态US

(2) Study Tag

GroupElement
Tag Description
中文解释
数据类型(VR)
00080050Accession Number:
A RIS generated number that identifies order for the Study.
检查号:
RIS的生成序号,用以标识做检查的次序
SH
00200010Study ID检查IDSH
0020000DStudy Instance UID:
Unique identifier for the Study.
检查实例号:
不同检查的唯一标识号
UI
00080020Study Date:
Date the Study started.
检查日期:
检查开始的日期
DA
00080030Study Time:
Time the Study started.
检查时间:
检查开始的时间
TM
00080061Modalities in Study一个检查中含有的不同检查类型CS
00080015Body Part Examined检查的部位CS
00081030Study Description检查的描述LO
00101010Patient’s Age做检查时刻的患者年龄,而不是此刻患者的真实年龄AS

(3) Series Tag

GroupElement
Tag Description
中文解释
数据类型(VR)
00200011Series Number:
A number that identifies this Series.
序列号:
识别不同检查的号码
IS
0020000ESeries Instance UID:
Unique identifier for the Series.
序列实例号:
不同序列的唯一标识号
UI
00080060Modality检查模态(MRI/CT/CR/DR)CS
0008103ESeries Description检查描述和说明LO
00080021Series Date检查日期DA
00080031Series Time检查时间TM
00200032Image Position (Patient):
The x,y and z coordinates of the upper left hand corner of the image,in mm.
图像位置:
图像的左上角在空间坐标系中的x.y.z坐标,单位是毫米。如果在检查中,则指该序列中第一张影像左上角的坐标。
DS
00200037Image Orientation (Patient):
The direction cosines of the first row and the first column with respect to the patient.
图像方位DS
00180050Slice Thickness:
Nominal slice thickness,in mm.
层厚DS
00180088Spacing Between Slices层与层之间的间距,单位为mmDS
00201041Slice Location:
Relative position of exposure expressed in mm.
实际的相对位置,单位为mmDS
00180023MR AcquisitionCS
00180015Body Part Examined身体部位CS

(4) Image Tag

GroupElement
Tag Description
中文解释
数据类型(VR)
00080008Image Type:
Image identification characteristics.
CS
00080018SOP Instance UIDSOP实例UID
00080023Content Date:
The date the image pixel data creation started.
影像拍摄日期DA
00080033Content Time影像拍摄时间TM
00200013Image/Instance Number:
A number that identifies this image.
图像码:
识别图像的号码
IS
00280002Samples Per Pixel:
Number of samples (planes) in this image.
图像采样率US
00280004Photometric Interpretation:
Specifies the intended interpretation of the pixel data.
光度计解释:
对于CT图像,用两个枚举值MONOCHROME1,MONOCHROME2 用来判断图像是否是彩色的;
MONOCHROME 1/2是灰度图,RGB则是真彩色图
CS
00280010Rows : Number of rows in the image.图像的总行数,行分辨率US
00280011Columns : Number of columns in the image.图像的总列数,列分辨率US
00280030Pixel Spacing:
Physical distance in the patient between the center of each pixel.
像素间距:
像素中心之间的物理间距
DS
00280100Bits Allocated:
Number of bits allocated for each pixel sample.Each sample shall have the same number of bits allocated.
分配的位数:
存储每一个像素值时分配的位数,每一个样本该值相同
US
00280101Bits Stored:
Number of bits stored for each pixel sample.Each sample shall have the same number of bits stored.
存储的位数:有12到16列举值
存储每一个像素用的位数,每一个样本该值相同
US
00280102High Bit:
Most significant bit for pixel sample data.
Each sample shall have the same high bit.
高位US
00280103Pixel Representation:
Data representation of the pixel samples.
Each sample shall have the same pixel representation.
Enum:0000H=unsigned integer,0001H=2’ s complement.
像素数据的表现类型:
一个枚举值,分别为十六进制数0000和0001.
0000H = 无符号整型,
0001H = 2的补码
US
00281050Window Center窗位DS
00281051Window Width窗宽DS
00281052Rescale Intercept:
The value b in relationship between stored values(SV) and the output units.
Output units = m*SV + b.
Required if Modality LUT Sequence(0028, 0030) is not present.
截距:
如果表明不同模态的LUT颜色对应表不存在时,则使用方程:
Units = m*SV + b,计算真实的像素值到呈现像素值,其中截距为表达式中的b
DS
00281053Rescale Slope:
m in the equation specified by Rescale Intercept(0028, 1052).
Required if Rescale Intercept is present.
斜率:
该值为表达式中的m
DS
00281054Rescale Type:
Specifies the output units of Rescale Slope (0028,1053) and Rescale Intercept (0028,1052).
Enum: US=Unspecified Requried if Photometric Interpretation is MONOCHROME2, and Bits Stored is greater than 1.
This specifies an identity Modality LUT transformation.
输出值的单位:
该值是一个枚举值
LO

2.VR数据类型

VR是DICOM标准中用来描述数据类型的,总共有27个值。

27种数据类型

数据类型(VR)
含义
允许字符数据长度
CS - Code String
代码字符串
开头结尾可以有没有意义的空格的字符串,比如 “CD123_4"大写字母,0-9,空格以及下划线字符最多16个字符
SH - Short String
短字符串
短字符串,比如:电话号码, ID最多16个字符
LO - Long String
长字符串
一个字符串,可能在开头、结尾填有空格。比如 “Introduction to DICOM”最多64个字符
ST - Short Text
短文本
可能包含一个或多个段落的字符串最多1024个字符
LT - Long Text
长文本
可能包含一个或多个段落的字符串,与 LO 相同,但可以更长最多10240个字符
UT - Unlimited Text
无限制文本
包含一个或多个段落的字符串,与 LT 类似最多(232 -2)个字符
AE - Application Entity
应用实体
标识一个设备的名称的字符串,开头和结尾可以有无意义的字符。比如 “MyPCO 1”最多16个字符
PN - Person Name
病人姓名
有插入符号 (^) 作为姓名分隔符的病人姓名。比如
“SMITH^JOHN” “Morrison Jones Susan^^^Ph.D,Chief Executive Officer”
最多64个字符
UI - Unique Identifier(UID)
唯一标识符
一个用作唯一标识各类项目的包含UID的字符串。比如 “1.2.840.10008.1.1”0-9和半角句号 (.)最多64个字符
DA - Date
日期
格式为 YYYYMMDD 的字符串;YYYY 代表年;MM 代表月;DD 代表日。比如 “20050822” 表示 20058220-98个字符
TM - Time
时间
格式为 HHMMSS.FRAC 的字符串。
HH 表示小时(范围"00"-“23”)
MM 表示分钟 (范围"00"-“59”)
FRAC 包含秒的小数部分,即百万分之一秒, 比如 “183200.00” 表示下午 6:32
0-9和半角句号 (.)最多16个字符
DT - Date Time
日期时间
格式为 YYYYMMDDHHMMSS.FFFFFF,串联的日期时间字符串。
字符串的各部分从左至右是:年-YYYY;月-MM;日-DD;小时-HH;分钟-MM;秒-SS;秒的小数-FFFFFF
比如 “20050812183000.00” 表示 2005812 日 下午 183000
0-9,加号,减号和半角句号最多26个字符
AS - Age String
年龄字符串
符合以下格式的字符串:nnnDnnnWnnnMnnnY;其中 nnn 对于 D 来说表示天数,对于 W 来说表示周数,对于 M 来说表示月数,对于 Y 来说表示岁数。比如 “018M” 表示他的年龄是 18 个月0-9,D,W,M,Y4个字符
IS - Integer String
整型字符串
表示一个整型数字的字符串,比如 “-1234567”0-9,加号 (+),减号 (-)最多12个字符
DS - Decimal String
小数字符串
表示定点小数和浮点小数,比如 “12345.67”, “-5.0e3”0-9, 加号 (+), 减号 (-), 最多16个字符 E, e 和半角句号(.)最多16个字符
SS - Signed Short
有符号短型
符号型二进制整数,长度 16 bits2个字符
US - Unsigned Short
无符号短型
无符号二进制整数,长度 16 bits2个字符
SL - Signed Long
有符号长型
有符号二进制整数4个字符
UL - Unsigned Long
无符号长型
无符号二进制长整数,长度 32 bits4个字符
AT - Attribute Tag
属性标签
16 bits 无符号整数的有序对,数据元素的标签4个字符
FL - Floating Single
单精度浮点型
单精度二进制浮点数4个字符
FD - Floating Point Double
双精度二进制浮点型
双精度二进制浮点数8个字符
OB - Other Byte String
其它字节字符串
字节的字符串("其它"表示没有在VR中定义的内容)
OW - Other Word String
其它单词字符串
16 bits(2字节) 单词字符串
OF - Other Float String
其它浮点字符串
32 bits(4个字节) 浮点单词字符串
SQ - Sequence Items
条目序列
条目的序列
UN - Unknown
未知
字节的字符串,其中内容的编码方式是未知的


参考:

  1. DICOM的Tags
  2. DICOM文件格式
  3. The DICOM Standrad
  4. DICOM Standard Browser
  5. DICOM-standaardversie 2019e

来源地址:https://blog.csdn.net/Joker00007/article/details/127754815

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

医学图像DICOM文件解析——DICOM内部信息详解篇

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录