DICOM LUT

DICOM图像像素值、灰度值与CT值之间的关系可以通过以下方式进行解释:

DICOM图像像素值:在DICOM图像中,像素值是用来表示图像信息的基本单位。这些值通常在0-4096的范围内,反映了图像的像素亮度。
DICOM图像灰度值:灰度值是像素亮度的度量,反映了图像的颜色和亮度。在DICOM图像中,灰度值也可以通过像素值计算得出。
DICOM图像CT值:CT值是用来衡量人体组织对X射线的吸收率的一种度量。在DICOM图像读取过程中,CT值可以通过像素值和特定的转换参数计算得到。
具体来说,假设有一组DICOM影像的像素值(灰度值)为[pi],其中i表示像素索引。
这些像素值(灰度值)可以通过与转换参数(即“rescale slope”和“rescale intercept”)相乘并加和来转换为CT值。
计算公式为:Hu = pixel * slope + intercept。其中,pixel是第i个像素的灰度值,Hu是第i个像素的CT值。

需要注意的是,有的图像已经是CT值(HU值),此时读取到的slope值为1,intercept值为0。这通常是因为这些图像在获取时已经使用CT设备进行了校准,使得像素值直接对应了CT值。


DICOM(数字图像和通信医学)是一种医学图像格式,常用于存储和传输医学图像数据。

在DICOM图像中,像素值、灰度值和CT值是重要的概念。
像素值是图像中每个像素的数值,通常表示为0-255之间的整数。
灰度值则是将像素值映射到一个连续的灰度等级,以便于人眼观察和处理图像。
CT值(Hounsfield单位)是一种用于衡量人体组织对X射线的吸收率的单位,通常用于表示图像中的不同组织类型。

在DICOM图像中,像素值和灰度值通常在读取图像时由特定的软件或硬件自动计算得出,而CT值则需要通过特定的公式从像素值和灰度值计算得出。
这个公式通常包括两个参数:归一化偏移量(rescale intercept)和归一化比例(rescale slope)。
归一化偏移量是一个常数,用于将像素值转换为CT值的参考点。
归一化比例则是一个因子,用于将像素值的范围扩展到CT值的范围内。

因此,要将DIC

 

OM图像的像素值转换为CT值,通常需要先读取图像的归一化偏移量和归一化比例,然后使用以下公式进行转换:
CT值 = 像素值 × 归一化比例 + 归一化偏移量
需要注意的是,不同的DICOM图像可能会使用不同的归一化偏移量和归一化比例,因此在转换图像时需要确保使用正确的参数。

此外,转换后的CT值可能会受到图像的噪声、对比度和亮度等因素的影响,因此在使用CT值进行医学诊断或研究时需要进行适当的校正和分析。

 

图像灰度值的概念是什么?灰度也可以认为是亮度,简单说就是色彩的深浅程度。

实际上在我们的日常生活中,通过三原色色彩深浅的组合,可以组成各种不同的颜色。产品能够展现的灰度数量越多,也就意味着这款产品的色彩表现力更加丰富,能够实现更强的色彩层次。
例如三原色16级灰度,能显示的颜色就是16×16×16=4096色。不过目前的产品256级灰度已经非常地普遍了。
所谓颜色或灰度级指黑白显示器中显示像素点的亮暗差别,在彩色显示器中表现为颜色的不同,灰度级越多,图像层次越清楚逼真。灰度级取决于每个像素对应的刷新存储单元的位数和显示器本身的性能。
如每个象素的颜色用16位二进制数表示,我们就叫它16位图,它可以表达2的16次方即65536种颜色。
如每一个象素采用24位二进制数表示,我们就叫它24位图,它可以表达2的24次方即16777216种颜色。

灰度就是没有色彩,RGB色彩分量全部相等。如果是一个二值灰度图象,它的象素值只能为0或1,我们说它的灰度级为2。
用个例子来说明吧:一个256级灰度的图象,RGB(100,100,100)就代表灰度为100,RGB(50,50,50)代表灰度为50。
灰度是指黑白图像中点的颜色深度,范围一般从0到255,白色为255 ,黑色为0,故黑白图片也称灰度图像,在医学、图像识别领域有很广泛的用途
彩色图象的灰度其实在转化为黑白图像后的像素值(是一种广义的提法),转化的方法看应用的领域而定,一般按加权的方法转换,R , G ,B 的比一般为3:6:1。

任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:
1.浮点算法:Gray=R*0.3+G*0.59+B*0.11
2.整数方法:Gray=(R*30+G*59+B*11)/100
3.移位方法:Gray =(R*28+G*151+B*77)>>8;
4.平均值法:Gray=(R+G+B)/3;
5.仅取绿色:Gray=G;
通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。

灰度值与像素值的关系
记录了明亮(暗与亮,黑与白)度信息的2D图像成为亮度(灰度)图像。
如果对于一张本身就是灰度图像(8位灰度图像)来说,他的像素值就是它的灰度值,如果是一张彩色图像,则它的灰度值需要经过函数映射来得到。
灰度图像是由纯黑和纯白来过渡得到的,在黑色中加入白色就得到灰色,纯黑和纯白按不同的比例来混合就得到不同的灰度值。

像素中具有RGB三通道的彩色图像来说怎样才能得到灰度图像呢?
只要使R=G=B,三者的值相等就可以得到灰度图像。R=G=B=255为白色,R=G=B=0为黑色,R=G=B=小于255的某个整数时,此时就为某个灰度值。

像素值(灰度值)转换为CT值
CT值的单位是Hounsfield,简称为Hu,范围是-1024-3071。用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu。
在DICOM图像读取的过程中,我们会发现图像的像素值有可能不是这个范围,通常是0-4096,这是我们常见到的像素值或者灰度值,这就需要我们在图像像素值(灰度值)转换为CT值。
首先,需要读取两个DICOM Tag信息,(0028|1052):rescale intercept和(0028|1053):rescale slope.
然后通过公式:
Hu = pixel * slope + intercept
计算得到CT值。

 

 

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

  1. 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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 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 内,那就可以很清楚看出异常病灶处

以下列出几个换算公式:



  1. 窄窗宽 (Narrow Window Width)
  • 对比度(Contrast)增加
  • 适合有相似的衰减值(HU/CT)的部位,比如:软组织
  1. 宽窗宽 (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 是用于图像处理和显示的不同类型的查找表。它们在医学影像中的处理和呈现中起着重要的作用。

  1. Modality LUT(Modality Lookup Table):模态查找表
    Modality LUT 用于将图像数据从设备特定的原始单位(例如CT值、MR信号强度等)转换为更具有物理含义的单位。它可以用来调整图像的对比度和亮度等,以确保图像在显示时具有适当的视觉效果。Modality LUT 通常由设备厂商在图像采集时应用,以便在图像存储时进行修正。
  2. VOI LUT(VoiLookup Table):值域查找表
    VOI LUT 用于调整图像的值域,即图像中各像素的灰度值。它可以用于增强或减弱图像中不同结构的对比度,以更好地突显感兴趣的解剖结构。VOI LUT 可以在显示过程中应用,以适应不同的显示环境和需求。
  3. Presentation LUT(Presentation Lookup Table):呈现查找表
    Presentation LUT 用于将图像数据从原始的灰度值映射到显示设备的灰度范围。它用于确保图像在不同的显示设备上具有一致的外观。Presentation LUT 可以根据显示设备的特性进行调整,以便在各种显示条件下都能获得良好的图像质量。

总之,Modality LUT、VOI LUT 和 Presentation LUT 是在DICOM标准中定义的不同类型的查找表,用于处理和呈现医学影像。它们在图像的获取、处理和显示过程中相互配合,以确保图像的质量和一致性。

参考内容:

  1. https://dotblogs.azurewebsites.net/MemoryRecall/2021/07/17/170824
  2. https://www.cnblogs.com/grass-and-moon/p/16595919.html
  3. https://programming.vip/docs/dicom-image-display-dcmtk-three-conversions-of-pixel-data.html

 

posted on 2024-01-30 16:06  马什么梅  阅读(28)  评论(0编辑  收藏  举报

导航