DICOM(Digital Imaging and Communications in Medicine)
数据格式,是医学影像存储中的标准格式。无论是X光、CT,还是MRI等等影像,采集的原理不同,但是存储的格式一般都是统一的。本文就对DICOM
文件的图像显示,做个介绍。
要显示DICOM
格式的医学图像,必须将原始图像数据经过一系列的转换才能得到可直接在显示设备上显示的数据(称之为P Values
)。DICOM医学图像显示需要经过Modality LUT、VOI LUT、Presentation LUT
三个转换过程,最终输出的P Values
才是可以直接显示的图像数据。
下图展示了从dicom
中的pixel
到显示的gray data
的全过程,和相关需要的参数。
其中:
- LUT:是
Look Up Table
查找表缩写 - VOI:是
Volume of Interest
感兴趣区域缩写 - P Values:是
Presentation Values
表现值缩写
为什么显示要经过这样繁琐的过程?
通常不同生产厂商的设备很难保证在一种设备上生成的图像和其他生产厂商的同类型设备上生成的图像在度量上是一致的,为此就需要将不同设备厂家产生的图像的原始数据转换到一个标准的度量空间,
Modality LUT
转换就是完成这个功能的。
以CT
成像技术为例,我们已经知道人体的灰度范围是-1000到+1000
。但是因为设备厂家不同采集后的数据可能会有偏差,比如假设A
组织标准范围是50到200
,但是设备厂家1出来的可能是60到210
,设备2出来的可能是40到190
。如果每个厂家设备都有偏差那么我们就没有办法根据灰度值来评判组织(因为我这里的肺检测出来时150,到了你那里可能就变成140了)。
所以DICOM
标准要求设备厂家在导出数据的时候要将自身设备出来的灰度范围变换到标准的-1000~1000
范围内。也就是说Modality LUT
是设备厂家自身与标准之间的一次变换映射。
在 DICOM
分类上可以查到这四个 Tag
分成两个模组,以下举例几个相关的关键 Tag
Modality LUT
- (0028,1052) Rescale Intercept
- (0028,1053) Rescale Slope
- (0028,1054) Rescale Type
- (0028,3000) Modality LUT Sequence
- (0028,3002) LUT Descriptor
- (0028,3003) LUT Explanation
- (0028,3004) Modality LUT Type
- (0028,3006) LUT Data
VOI LUT
- (0028,1050) Window Center
- (0028,1051) Window Width
- (0028,1056) VOI LUT Function
- (0028,3010) VOI LUT Sequence
- (0028,3002) LUT Descriptor
- (0028,3003) LUT Explanation
- (0028,3006) LUT Data
其中:
- 窗位
(Window Center)
:代表可视范围(或是感兴趣区域)的 CT 值范围中心 - 窗宽
(Window Width)
:可视范围大小 - 调整斜率
(Rescale Slope)
- 调整截距
(Rescale Intercept)
以上几个属性(Attribute)使用要注意几个规则:
Window Center (0028,1050) 与 VOI LUT Sequence (0028,3010)
选择一个使用Window Center (0028,1050) 须与 Window Width (0028,1051)
搭配使用Rescale Intercept (0028,1052) 与 Modality LUT Sequence (0028,3000)
选择一个使用Rescale Intercept (0028,1052) 须与 Rescale Slope (0028,1053)
搭配使用
一、Modality LUT
看到这边就大概知道为什麽还要 Rescale Intercept
与 Rescale Slope
,为了转换成 CT 值(HU)
。
这部分的属性值需要设备厂商正确提供才能准确的把拍摄的图像数值转换成对照的 CT
值。常规转换公式如下:
当我们要将CT
值映射到8-bit [0,255]
萤幕上显示,可以用以下一元二次方程式来计算
上述公式要转换到16-bit/12-bit/10-bit
值域,只要把255
替换成欲转换值域的最大值即可。一般情况下,
Rescale Intercept(0028,1052)
预设为 0;Rescale Slope(0028,1053)
预设为 1
这边补充一个网上对 Intercept
与 Slope
的概念说明,为什么要引入这两个参数:
CT 生成的图像数值范围是
[-1024…+32768] 共 33793 阶
,而DICOM 的 CT 影像常用 12-bit
储存数据,最多储存4096
阶,为了能将 CT 能表示的数值存入 DICOM 档案内,所以使用截距与斜率进行转换
二、VOI LUT
VOI LUT
是将CT
值,转化为灰度值,用于显示。其中
- 窗位
(Window Center/Window Level)
:代表可视范围(或是感兴趣区域)的 CT 值范围中心 - 窗宽
(Window Width)
:可视范围大小
用下面这张图就很好理解 WL
与 WW
的功用,用来增强我们想关注的部位的呈现效果
像上图 Air
到 Dense Bone
的 CT
灰阶值有 2001
阶,若要映射到用 8-bit
显示灰阶萤幕,只能使用 0~255
共 256
阶 (比如 Windows 的 sRGB
)
那 WL, WW
的设定好坏,关係到医生是否能准确的分析出病徵有很大关係。基于以上原因,那只要把关注几个部位的对应 CT 值框进 WL, WW 内,那就可以很清楚看出异常病灶处
以下列出几个换算公式:
- 窄窗宽 (
Narrow Window Width
)
- 对比度(
Contrast
)增加 - 适合有相似的衰减值(
HU/CT
)的部位,比如:软组织
- 宽窗宽 (
Wide Window Width
)
- 对比度(
Contrast
)减少 - 适合衰减值(
HU/CT
)明显不同的部位,比如:肺与支气管
Window Center
控制影像的亮度(Brightness
),而 Window Width
控制影像的对比度(Contrast
)。调整窗位与窗宽的影响如下:
Window Center
越大亮度越暗,反之越小亮度越亮Window Width
越大对比度越低,反之越小对比度越高
如下:垂直方向表示WC
亮度变化(下到上→亮到暗);水平方向表示WW
对比度变化(左到右→高到低)
总结可发现: WC, WW
是针对 CT
图像来设计,计算上都要把数值转换为 CT
值才能做窗位、窗宽调整。
这个转换包括把多余高位 bit 变成 0(最低灰阶值),低位 bit 变成最高灰阶值(8-bit: 255, 10-bit:1023, 12-bit: 4096, 14-bit: 16383, 16-bit: 65535)
,再用 Rescale Intercept 与 Rescale Slope
作单位换算。
三、杂记
到此会发现都没说到最开始提到的 VOI LUT Sequence
与 Modality LUT Sequence
,这两个主要是给非常规的转换而来,主要方法是用查表映射(Lookup Table
)对应数值
-
VOI LUT Sequence
的几个属性就单纯查表对应使用 -
Modality LUT Sequence
除了查表用属性外,还有一个Modality LUT Type
(0028,3004) 来指明转换后的数值单位(除了 HU 也可能使用光电量测单位)
面对显示器往往只有 8-bit
,而数据有 12-16 bit
的落差,过去的演算法把数据的 Max 到 Min
之间转换到 8-bit 的 0-255
,过程是个有损转换,最终得到的图像常常突现一些噪声(Noise)
针对这些问题,研究学者提出几项要求来规范转换的演算法,目前转换方式便是基于以下这些要求设计出来:
- 充分利用
0-255
之间的有效显示范围 - 尽量减少数值压缩带来的损失
- 不能损失应该凸显的组织部分
总结下,在DICOM
文件存储标准中,Modality LUT、VOI LUT 和 Presentation LUT
是用于图像处理和显示的不同类型的查找表。它们在医学影像中的处理和呈现中起着重要的作用。
-
Modality LUT(Modality Lookup Table)
:模态查找表
Modality LUT
用于将图像数据从设备特定的原始单位(例如CT值、MR信号强度等)转换为更具有物理含义的单位。它可以用来调整图像的对比度和亮度等,以确保图像在显示时具有适当的视觉效果。Modality LUT
通常由设备厂商在图像采集时应用,以便在图像存储时进行修正。 -
VOI LUT(VoiLookup Table)
:值域查找表
VOI LUT
用于调整图像的值域,即图像中各像素的灰度值。它可以用于增强或减弱图像中不同结构的对比度,以更好地突显感兴趣的解剖结构。VOI LUT
可以在显示过程中应用,以适应不同的显示环境和需求。 -
Presentation LUT(Presentation Lookup Table)
:呈现查找表
Presentation LUT
用于将图像数据从原始的灰度值映射到显示设备的灰度范围。它用于确保图像在不同的显示设备上具有一致的外观。Presentation LUT
可以根据显示设备的特性进行调整,以便在各种显示条件下都能获得良好的图像质量。
总之,Modality LUT、VOI LUT 和 Presentation LUT
是在DICOM
标准中定义的不同类型的查找表,用于处理和呈现医学影像。它们在图像的获取、处理和显示过程中相互配合,以确保图像的质量和一致性。
参考内容:
- https://dotblogs.azurewebsites.net/MemoryRecall/2021/07/17/170824
- https://www.cnblogs.com/grass-and-moon/p/16595919.html
- https://programming.vip/docs/dicom-image-display-dcmtk-three-conversions-of-pixel-data.html