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

这篇具有很好参考价值的文章主要介绍了医学图像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,python,计算机视觉,图像处理
   DICOM文件是指按照DICOM标准而存储的医学文件,一般由一个DICOM文件头和一个DICOM数据集合组成,结构图如下图:
dicom文件,医学图像DICOM,python,计算机视觉,图像处理
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

Group Element Tag Description 中文解释 数据类型(VR)
0010 0010 Patient’s Name 患者姓名 PN
0010 0020 Patient ID 患者ID LO
0010 0030 Patient’s Birth Date 患者出生日期 DA
0010 0032 Patient’s Birth Time 患者出生时间 TM
0010 0040 Patient’s Sex 患者性别 CS
0010 1030 Patient’s Weight 患者体重 DS
0010 21C0 Pregnancy Status 怀孕状态 US

(2) Study Tag

Group Element
Tag Description
中文解释
数据类型(VR)
0008 0050 Accession Number:
A RIS generated number that identifies order for the Study.
检查号:
RIS的生成序号,用以标识做检查的次序
SH
0020 0010 Study ID 检查ID SH
0020 000D Study Instance UID:
Unique identifier for the Study.
检查实例号:
不同检查的唯一标识号
UI
0008 0020 Study Date:
Date the Study started.
检查日期:
检查开始的日期
DA
0008 0030 Study Time:
Time the Study started.
检查时间:
检查开始的时间
TM
0008 0061 Modalities in Study 一个检查中含有的不同检查类型 CS
0008 0015 Body Part Examined 检查的部位 CS
0008 1030 Study Description 检查的描述 LO
0010 1010 Patient’s Age 做检查时刻的患者年龄,而不是此刻患者的真实年龄 AS

(3) Series Tag

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

(4) Image Tag

Group Element
Tag Description
中文解释
数据类型(VR)
0008 0008 Image Type:
Image identification characteristics.
CS
0008 0018 SOP Instance UID SOP实例UID
0008 0023 Content Date:
The date the image pixel data creation started.
影像拍摄日期 DA
0008 0033 Content Time 影像拍摄时间 TM
0020 0013 Image/Instance Number:
A number that identifies this image.
图像码:
识别图像的号码
IS
0028 0002 Samples Per Pixel:
Number of samples (planes) in this image.
图像采样率 US
0028 0004 Photometric Interpretation:
Specifies the intended interpretation of the pixel data.
光度计解释:
对于CT图像,用两个枚举值MONOCHROME1,MONOCHROME2 用来判断图像是否是彩色的;
MONOCHROME 1/2是灰度图,RGB则是真彩色图
CS
0028 0010 Rows : Number of rows in the image. 图像的总行数,行分辨率 US
0028 0011 Columns : Number of columns in the image. 图像的总列数,列分辨率 US
0028 0030 Pixel Spacing:
Physical distance in the patient between the center of each pixel.
像素间距:
像素中心之间的物理间距
DS
0028 0100 Bits Allocated:
Number of bits allocated for each pixel sample.Each sample shall have the same number of bits allocated.
分配的位数:
存储每一个像素值时分配的位数,每一个样本该值相同
US
0028 0101 Bits Stored:
Number of bits stored for each pixel sample.Each sample shall have the same number of bits stored.
存储的位数:有12到16列举值
存储每一个像素用的位数,每一个样本该值相同
US
0028 0102 High Bit:
Most significant bit for pixel sample data.
Each sample shall have the same high bit.
高位 US
0028 0103 Pixel 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
0028 1050 Window Center 窗位 DS
0028 1051 Window Width 窗宽 DS
0028 1052 Rescale 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
0028 1053 Rescale Slope:
m in the equation specified by Rescale Intercept(0028, 1052).
Required if Rescale Intercept is present.
斜率:
该值为表达式中的m
DS
0028 1054 Rescale 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” 表示 2005822 0-9 8个字符
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,Y 4个字符
IS - Integer String
整型字符串
表示一个整型数字的字符串,比如 “-1234567” 0-9,加号 (+),减号 (-) 最多12个字符
DS - Decimal String
小数字符串
表示定点小数和浮点小数,比如 “12345.67”, “-5.0e3” 0-9, 加号 (+), 减号 (-), 最多16个字符 E, e 和半角句号(.) 最多16个字符
SS - Signed Short
有符号短型
符号型二进制整数,长度 16 bits 2个字符
US - Unsigned Short
无符号短型
无符号二进制整数,长度 16 bits 2个字符
SL - Signed Long
有符号长型
有符号二进制整数 4个字符
UL - Unsigned Long
无符号长型
无符号二进制长整数,长度 32 bits 4个字符
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
未知
字节的字符串,其中内容的编码方式是未知的


参考:文章来源地址https://www.toymoban.com/news/detail-780079.html

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

到了这里,关于医学图像DICOM文件解析——DICOM内部信息详解篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 医院影像图像科室工作站PACS系统 DICOM 三维图像后处理与重建

    PACS报告系统的主要任务是通过运用不断积累诊断常用语,减轻出报告的劳动强度,并且将报告保存成电子文档以便日后查阅。在PACS的报告系统中,有三种不同层次的方法输入文字—“高级模板”、“分类词条”和“短语词典”。这三种方法的内容都可以在运行时创建并加以

    2023年04月21日
    浏览(46)
  • 【从0上手cornerstone3D】如何渲染一个基础的Dicom文件(含演示)

    Cornerstone3D官网:https://www.cornerstonejs.org/ 在线查看显示效果(加载需时间,可先点击运行),欢迎fork 了解了Cornerstone是什么,有什么作用后,我们先看一下如何去渲染两种比较重要的影像,栈影像和Volume影像,感受一下代码的逻辑及运行顺序,先有个初始的了解。 1. 渲染一个

    2024年01月22日
    浏览(35)
  • DIcom调试Planar configuration

    最近和CBCT组同事调dicom图像 这边得图像模块老不兼容对方得dicom文件。 vtk兼容,自己写得原生解析不兼容。 给对方调好了格式,下次生成文件还会有错。 简单记录下,日后备查。 今天对方又加了 个字段:Planar configuration   查了下,影响挺大得,这是彩色通道在pixeldata里得

    2024年02月22日
    浏览(34)
  • 【代码 | 格式转换】Dicom转png

     【相关链接】 How To Convert a DICOM Image Into JPG or PNG - PYCAD、中文 【相关知识】 1、PNG和JPEG(JPG)格式各有优缺点,根据不同的应用场景可以选择不同的格式。 从保留图片信息的完整性和减少信息丢失的角度来看,PNG格式比JPEG格式更好。 PNG 是一种无损压缩格式,可以保留图像

    2024年02月08日
    浏览(46)
  • 开源PACS系统Orthanc(DICOM服务器)配置

    每日鸡汤:不是有所成就才算活着,梦想也不是什么了不起的东西,只喜欢走路、看天、吃披萨的人生也很好。 因为最近开发需要从PACS系统中获取医学影相图片才有了这篇安装BLOG,希望能对同样需要的伙伴一点帮助。 1. PACS和DICOM介绍 PACS(Picture Archiving and Communication System)

    2024年02月03日
    浏览(33)
  • u盘就能用:RadiAnt DICOM Viewer CD/DVD 2023.1

    RadiAnt DICOM Viewer CD/DVD 2023.1 built on March 29, 2023 DownloadCD/DVD Autorun Package New features: Length ratio calculation. Ellipsoid / bullet volume calculation. Improvements and bug fixes: Added support for certain DICOM files not fully compliant with the standard. Added support for some uncommon DICOM images with JPEG 2000 encoding. This version is

    2024年02月06日
    浏览(38)
  • PNG、JPG如何转Dicom(dcm),那些年我踩过的坑(Python版)

            Dicom作为医学影像的常见数据格式,是每个深耕于医疗AI的同学无法跳过的一个坑。虽然我只是一名扎根于算法部署方面的小白。但是也不可避免地接触到这类数据。这不,最近接到算法同学给出的算法,需要我自己找公开数据集进行测试。可是Dicom数据集并不常见

    2024年02月07日
    浏览(44)
  • 基于Unet的BraTS 3d 脑肿瘤医学图像分割,从nii.gz文件中切分出2D图片数据

    3D图像分割一直是医疗领域的难题,在这方面nnunet已经成为了标杆,不过nnunet教程较少,本人之前跑了好久,一直目录报错、格式报错,反正哪里都是报错等等。并且,nnunet对于硬件的要求很高,一般的电脑配置或者低配置的服务器完全带不起来 或者定义conv.3D的unet网络模型

    2024年04月11日
    浏览(111)
  • Python Unet ++ :医学图像分割,医学细胞分割,Unet医学图像处理,语义分割

    一,语义分割:分割领域前几年的发展 图像分割是机器视觉任务的一个重要基础任务,在图像分析、自动驾驶、视频监控等方面都有很重要的作用。图像分割可以被看成一个分类任务,需要给每个像素进行分类,所以就比图像分类任务更加复杂。此处主要介绍 Deep Learning-ba

    2024年02月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包