![通信作者](https://xuebao.neu.edu.cn/natural/article/2023/1005-3026/images/REcor.gif)
![NEUypx@163.com](https://xuebao.neu.edu.cn/natural/article/2023/1005-3026/images/REemail.gif)
东北大学 机械工程与自动化学院, 辽宁 沈阳 110819
收稿日期:2022-05-29
作者简介:陈锦林(1997-), 男, 福建泉州人, 东北大学硕士研究生;
原培新(1953-), 男, 辽宁营口人, 东北大学教授。
摘要:调窗处理能够提高医学CT图像对灰度的识别准确率, 默认窗位窗宽(127.5, 255)局限性强, 人工调窗不仅需要具备丰富的先验知识, 而且效率低下无法广泛应用, 为此提出一种自适应调窗算法.该算法首先根据序列图像最大和最小灰度值绘制直方图.其次设置相关参数, 遍历直方图去除频数小于阈值T0的部分, 再次遍历直方图将相邻两组频数差值小于阈值T1的部分合并.最后根据直方图计算窗宽窗位.通过对比实验表明, 该算法在均方误差、信噪比和峰值信噪比方面都有所提高, 能够有效地提高灰度识别准确率.
关键词:医学CT序列图像自适应调窗处理直方图阈值
Self-adaptation Adjusting Window Width and Window Level Algorithm for Medical CT Sequence Images
CHEN Jin-lin, YUAN Pei-xin
![Corresponding author](https://xuebao.neu.edu.cn/natural/article/2023/1005-3026/images/REcor.gif)
![NEUypx@163.com](https://xuebao.neu.edu.cn/natural/article/2023/1005-3026/images/REemail.gif)
School of Mechanical Engineering & Automation, Northeastern University, Shenyang 110819, China
Corresponding author: YUAN Pei-xin, E-mail: NEUypx@163.com.
Abstract: Window transformation can improve the accuracy of gray level recognition in medical CT images. The default window(127.5, 255)has strong limitations. Manual window transformation requires rich priori knowledge and is inefficient, making it unsuitable for widespread use. Therefore, a self-adaptation algorithm for window transformation in medical CT sequence images is proposed. Firstly, a histogram is drawn according to the maximum and minimum gray level values of the sequence images. Secondly, relevant parameters are set to traverse the histogram to remove parts with frequencies below the threshold T0. After traversing the histogram again, parts with a difference between adjacent groups of frequencies less than the threshold T1 are merged. Finally, the window width and window level are calculated based on the histogram. Experimental results showed that the algorithm improved the mean square error, signal-to-noise ratio and peak signal-to-noise ratio, which could effectively improve the accuracy of gray level recognition.
Key words: medical CT sequence imagesself-adaptationwindow transformationhistogramthreshold
医学CT图像, 是单通道16位灰度图, 其灰度范围为0~65 535[1], 人眼只能分辨有限的灰度级, 当灰度级为16时, 对其识别准确率仅有68.75%, 但是当灰度级降为8时, 对其识别准确率则高达93.16%[2].因此需要进行调窗处理, 窗宽是灰度值的上下限, 窗位是中心灰度值[3].
手动调窗: 首先观察CT图像, 结合需要显示区域, 然后设置窗宽窗位, 常见的窗口有骨窗和肺窗.这虽然能够有较高的灰度识别率, 但效率低下且需要丰富的先验知识, 无法广泛应用.
自适应调窗: 首先截取感兴趣灰度范围, 然后采用线性映射和非线性映射等方法映射到特定的灰度范围上[4], 调窗的关键依旧是找到特定窗宽窗位.Ohhashi等[5]提出一种基于神经网络算法来寻找核磁共振图像的窗宽窗位.该算法首先是将灰度直方图特性与核磁共振图像空间统计特性相结合, 然后使用基于分层神经网络算法估算窗宽窗位.这一算法过程繁杂, 且随着神经网络的不断发展, 其算力已经无法满足当前要求.周振环等[6]提出一种针对直方图分布为双峰情况的自动调窗算法.该算法首先是去除直方图最左边的高峰, 然后寻找剩余直方图部分的极小值点作为窗底, 最大值点作为窗位, 最后通过公式计算得到窗宽.这一算法只适用于双峰类型的直方图, 对于其他类型直方图适应性很差, 无法得到广泛应用.沈琴等[7]提出一种改进的核磁共振图像自动调窗算法.该算法首先从0开始累加直方图面积, 并将累加面积占总面积72%的灰度值点作为窗位, 最后通过大量实验总结得到窗宽为508.这一算法设置特定窗宽, 局限性较强, 随着医学设备的不断升级, 窗宽为508无法很好地适应所有的医学图像.吕磊等[8]提出一种16位灰度图像自动调窗算法.该算法首先将直方图类型分为4种, 分别是普通单峰直方图、普通双峰直方图、灰度集中单峰直方图和灰度靠右边的双峰直方图, 然后根据不同类型的直方图计算相应的最佳窗宽窗位.这一算法无法自动分类直方图的类型, 缺乏自适应性, 依旧需要人工分类.
在读取医学CT序列图像时, 逐张地设置窗宽窗位, 效率低下.本文算法针对整个序列图像,通过设置不同的阈值进行处理, 相比于针对单张图片进行处理而言, 效率更高, 而且不需要设置特定窗宽, 准确率更高.首先根据序列图像的最大和最小灰度值绘制整个序列图像的直方图, 其次设置相关参数, 然后遍历直方图去除频数小于阈值T0的部分, 再次遍历直方图将相邻两组频数小于阈值T1的部分合并, 最后根据直方图计算窗宽窗位.通过对比实验表明, 本文方法计算出的窗宽窗位值, 相较于默认值, 在均方误差、信噪比和峰值信噪比方面都有所提高, 且图像的对比度有明显的提高.
1 准备知识1.1 DICOM图像标准医学CT图像使用的是DICOM图像标准, DICOM PS3.1 2022b是最新标准[9].该标准定义了医学影像及相关信息的组成格式和交换方式[10], 这使得医学图像可以在不同设备之间交换与存储.在该标准中图像由头文件和数据元素两部分组成, 其中头文件标识了数据的相关信息, 由导言、前缀、信息元素等构成[11], 数据元素由标签、值类型、值长度和数据域组成.标签可分为组号(前2个字节)和元素号(后2个字节)[12].DICOM标准示意图如图 1所示.
图 1(Fig. 1)
![]() | 图 1 DICOM标准示意图Fig.1 Schematic diagram of DICOM standard |
DICOM中较为重要的标签(tag)有Patient Name(0010|0010), Patient ID(0010|0020), Samples Per Pixel(0028|0002), Rows(0028|0010), Columns(0028|0011), Rescale Intercept(0028|1052)以及Rescale Slope(0028|1053).
1.2 DICOM序列图像的显示处理DICOM图像常用的商业软件有3D Slice[13]、VolVis系统[14]、Volulne Pro以及Vitrea2[15]等.本文采用VTK8.2.0[16]可视化工具包和ITK5.1.0[17]图像处理工具包实现DICOM序列图像的显示, 以腰椎CT为例, 其显示效果如图 2所示.在Visual Studio 2017平台, C++语言, 实现代码的编写, 整体流程图如图 3所示, 采用VTK工具包“管道式”编程风格.
图 2(Fig. 2)
![]() | 图 2 DICOM序列图像显示Fig.2 DICOM sequence image display |
图 3(Fig. 3)
![]() | 图 3 代码编写流程图Fig.3 Flow chart of coding |
基于ITK和VTK实现DICOM序列图像的显示分为3个步骤:
1) ITK读取DICOM文件.VTK8.2.0也能读取DICOM文件, 但是在读取过程中会失真, 为了保证图像的清晰度, 选用ITK工具包进行读取.在读取前要先设定像素类型为3维, 设置图像的输入输出类型为DcmImageIO, 然后读取DICOM序列文件.最后将图像数据从ITK转换为VTK类型.
2) VTK显示DICOM文件.首先将图像数据进行翻转, ITK处理之后的图像上下颠倒, 因此需要先进行翻转.然后将图像更新, VTK采用管道式的编程方式, 图像的更新才能让下一步继续进行.最后是图像的显示, 并且设置相应的属性, 包括绘制窗口的大小和颜色、文字大小和位置, 以及窗宽窗位的设定.在VTK中, 窗宽窗位的设定需要手动输入, 默认的窗位窗宽是(127.5, 225).图 2就是在默认条件下的显示效果,可以看出图像整体偏暗, 各组织之间对比度不高, 辨识度较高的只有骨骼, 而肾脏和肺部等软组织清晰度较低.本文的自适应调窗算法, 其目的就是根据读取的DICOM序列图像自动生成窗宽窗位, 提高各组织之间的辨识度.
3) VTK交互类型的设定.交互类型的设置才能显示整个序列图像并且通过鼠标和键盘实现翻页功能.首先设置消息状态, 其目的是记录当前显示的图片, 并且记录当前图片的位置.然后实现键盘和鼠标的翻页功能, 将键盘和鼠标事件包含在交互类型中, 键盘的up键, 鼠标滚轮向前都是往前翻页, 键盘down键, 鼠标滚轮向后都是往后翻页.
2 自适应调窗算法调窗处理是指在16位的CT图像中选择一个特定的灰度范围, 并将其映射到(0, 255)范围进行显示.对于大于这一特定范围的像素全部置为255(白色), 小于这一特定范围的像素全部置为0(黑色).增大窗宽, 能够显示更多信息, 灰度范围更广, 但是不同组织之间分辨度和对比度低; 减小窗宽, 能够提高分辨度, 但是所能显示的信息减少.原始的图像数据与显示图像数据之间的线性映射关系如式(1)所示.医学CT图像窗宽窗位示意图如图 4所示.
![]() | (1) |
![]() | 图 4 窗宽窗位示意图Fig.4 Schematic diagram of window width and window level |
式中: g(i, j)为显示图像数据; f(i, j)为原始图像数据; c为窗位; w为窗宽.
自适应调窗处理步骤:
1) 读取医学CT序列图像.具体来说, 可以直接从医疗图像采集设备上获得原始图像数据, 也可以对原始图像数据经过处理之后的图像.
2) 遍历整个序列图像, 找到最大灰度值Gmax和最小灰度值Gmin.设置直方图的组数nbins为256, 组距Hbins由图像灰度值和组数共同决定, 见式(2).因为是灰度图像, 故设置组元为1.再次遍历序列图像, 绘制直方图.若序列图像过多, 也可以采用等距采样遍历图像, 这样可以保证算法有较高的计算速度.采样距离需慎重选择, 以免影响最终结果.
![]() | (2) |
![]() | (3) |
4) 遍历直方图, 去除频数阈值小于T0的部分.阈值小于T0的部分所包含的信息较少, 去除之后可以较好地突出峰值部分.将所有频数大于阈值T0的部分保存在数组M中, 由数组M构成新的直方图.
5) 遍历新的直方图, 计算每一组与其相邻组频数的差值d, d=Mi+1-Mi, 将相邻两组频数的差值d小于阈值N1的部分进行合并.
6) 遍历直方图, 计算剩余的组数B.计算窗宽窗位, 见式(4).
![]() | (4) |
![]() | (5) |
![]() | (6) |
先将灰度值转换为CT值, 然后再进行线性映射.CT值属于医学领域的概念, 它是测定人体某一局部组织或者器官密度大小的一种计量单位, 通常称为亨氏单位(Hounsfield, HU), 其反映了人体组织对于X射线的吸收程度.人体各个组织的CT值范围是(-1000 HU~+1 000 HU), 水为0 HU, 骨头一般在500~1 000 HU.算法流程图如图 5所示.
图 5(Fig. 5)
![]() | 图 5 算法流程图Fig.5 Flow chart of algorithm |
3 实验与分析为验证本文算法的可行性, 在MathWorks公司的Matlab R2016b平台上实现本文编程算法, 医学CT序列图像均来自于DICOM Library.com, 所有图像均已隐去个人信息, 可以用于科研.
3.1 腰椎CT序列图像的调窗腰椎CT序列图像361张, 每张图像尺寸为512像素×512像素, 整个序列图像的最大灰度值Gmax=3 948, 最小灰度值Gmin=0, DICOM图像中的斜率S=1, 截距I=-1 000.设置直方图组数nbins=256, 组元为1, 组距取整Hbins=15, 绘制序列直方图如图 6所示.从直方图可以看出, 腰椎CT序列图像只有一个波峰, 波峰与其余部分对比明显.因此在选择窗宽窗位的时候要尽量突出波峰部分, 其余部分所包含信息较少, 可以隐去不显示.N0和N1为可调数据, 其范围为(0.000 5~0.002 5), 通过做多组对比实验来确定可调数据的值.对可调数据每隔0.000 5做一次实验, 最后得到剩余组数B如表 1所示.
图 6(Fig. 6)
![]() | 图 6 腰椎CT序列直方图Fig.6 CT sequence histogram of lumbar spine |
表 1(Table 1)
![]()
| 表 1 剩余的组数B Table 1 Number of remaining groups B |
通过表 1数据计算出窗宽窗位, 如表 2所示.序列图像的第100张和第350张, 如图 7所示.不调窗情况下, 图像整体颜色偏淡灰色, 骨骼与肾脏、肺部等软组织对比度较低.图 7a,图 7b白框标出的区域1, 3, 4在调窗之后整体偏暗, 与背景几乎融合在一起, 无法分辨它的边缘部分, 这会影响医生对CT图像的主观判断.图 7a中区域2在调窗之后, 虽然可以和呈白色的骨骼分辨开来, 但是中间组织颜色过于黑暗, 与背景颜色无法区分.通过分析可知, 默认窗位窗宽显示效果不佳.
表 2(Table 2)
![]()
| 表 2 窗宽窗位 Table 2 Window width &window level |
图 7(Fig. 7)
![]() | 图 7 腰椎CT图片Fig.7 CT images of lumbar spine (a)—第100张映射到(0, 255)序列图像;(b)—第350张映射到(0, 255)序列图像;(c)—第100张调窗为(127.5, 255)序列图像;(d)—第350张调窗为(127.5, 255)序列图像. |
对第100张图片的调窗显示效果如图 8所示, 对第350张图片的调窗显示效果如图 9所示.图 8中白框标出的区域1, 2相较于图 7c, 显示效果更加清晰, 并且整体图像较为明亮.图 9中白框标出的区域3, 4, 边缘部分能够清晰地呈现出来, 并且整体图像较为明亮.结果表明, 自适应调窗算法能够达到理想的效果.
图 8(Fig. 8)
![]() | 图 8 腰椎CT第100张图片Fig.8 Number 100 CT images of lumbar spine (a)—组数22, (c, w)为(41.3, 371.3); (b)—组数23, (c, w)为(45.1, 388.1); (c)—组数25, (c, w)为(46.9, 421.9); (d)—组数26, (c, w)为(48.8, 438.8); (e)—组数27, (c, w)为(50.6, 455.6); (f)—组数29, (c, w)为(54.4, 489.4); (g)—组数30, (c, w)为(56.3, 506.3); (h)—组数33, (c, w)为(61.9, 556.9); (i)—组数34, (c, w)为(63.8, 573.8); (j)—组数35, (c, w)为(65.6, 590.6); (k)—组数36, (c, w)为(67.5, 607.5); (l)—组数38, (c, w)为(71.3, 641.3); (m)—组数41, (c, w)为(76.9, 691.9); (n)—组数46, (c, w)为(86.3, 776.3). |
图 9(Fig. 9)
![]() | 图 9 腰椎CT第350张图片Fig.9 Number 350 CT images of lumbar spine (a)—组数22, (c, w)为(41.3, 371.3); (b)—组数23, (c, w)为(45.1, 388.1); (c)—组数25, (c, w)为(46.9, 421.9); (d)—组数26, (c, w)为(48.8, 438.8); (e)—组数27, (c, w)为(50.6, 455.6); (f)—组数29, (c, w)为(54.4, 489.4); (g)—组数30, (c, w)为(56.3, 506.3); (h)—组数33, (c, w)为(61.9, 556.9); (i)—组数34, (c, w)为(63.8, 573.8); (j)—组数35, (c, w)为(65.6, 590.6); (k)—组数36, (c, w)为(67.5, 607.5); (l)—组数38, (c, w)为(71.3, 641.3); (m)—组数41, (c, w)为(76.9, 691.9); (n)—组数46, (c, w)为(86.3, 776.3). |
为了避免实验结果受到人为因素的影响, 需要添加客观评价.选择均方误差MSE, 峰值信噪比PSNR和信噪比SNR作为评价标准.计算公式为
![]() | (7) |
将不调窗直接映射的图片作为源图片,是考虑到它包含更多的信息, 虽然显示效果不佳, 但是没有信息丢失, 因此将其作为源图片.评价标准的计算结果见表 3和表 4.
表 3(Table 3)
![]()
| 表 3 客观评价(第100张) Table 3 Objective judgement of number 100 |
表 4(Table 4)
![]()
| 表 4 客观评价(第350张) Table 4 Objective judgement of number 350 |
分析表 3和表 4, 理论上均方误差越小越好, 信噪比和峰值信噪比越大越好.表 3最佳窗位窗宽为(41.3, 371.3), 而表 4最佳窗位窗宽为(86.3, 776.3).表 3的信噪比和峰值信噪比波动范围在2 dB之内, 而表 4的信噪比和峰值信噪比的波动范围在7 dB之内.在默认窗宽窗位下, 第100张图片的MSE=112.091 5, PSNR=27.635 1 dB和SNR=0.647 2 dB; 第350张图片的MSE=93.628 3, PSNR=28.416 7 dB和SNR=1.438 1 dB, 本文算法有明显的优势.综合考虑后, 选择中间值(c, w)为(56.3, 506.3)作为最佳值, 根据式(4)和表 1, 可得N0=0.001 5和N1=0.001 5.
3.2 骨架CT序列图像的调窗对头颅、骨架、踝关节、髋部、膝盖、骨盆、肩部和下颌等数据, 做整个序列图像的直方图, 如图 10所示,它们都是单峰直方图.选择骨架CT序列作为对照实验.骨架CT序列图像404张, 每张图像尺寸为512像素×512像素, 序列图像最大灰度值Gmax=4 095, 最小灰度值Gmin=0, DICOM图像中的斜率S=1, 截距I=-1 024, 组距取整Hbins=15,可调数据N0=0.001 5,N1=0.001 5.其余数据沿用上文.绘制序列图像的直方图如图 11所示.剩余组数B=40, 窗位窗宽为(75.0, 675.0).经过本文算法, 直方图波形不变.
图 10(Fig. 10)
![]() | 图 10 CT序列直方图Fig.10 CT sequence histogram (a)—骨架; (b)—踝关节; (c)—膝盖; (d)—下颌; (e)—女头部; (f)—男头部; (g)—女髋部; (h)—男髋部; (i)—女骨盆; (j)—男骨盆; (k)—女肩部; (l)—男肩部. |
图 11(Fig. 11)
![]() | 图 11 骨架CT序列直方图Fig.11 CT sequence histogram of body (a)—原始;(b)—处理后. |
选择第356张图片, 将本文算法与文献[6-8]算法进行比较, 显示效果如图 12所示.从图中可看出,各组织分辨度更高.骨架CT序列的客观评价如表 5所示.由表 5可以看出本文算法效果更佳.
图 12(Fig. 12)
![]() | 图 12 骨架CT图片Fig.12 CT images of skeleton (a)—默认情况; (b)—文献[6]; (c)—文献[7]; (d)—文献[8]; (e)—本文算法. |
表 5(Table 5)
![]()
| 表 5 骨架CT序列客观评价 Table 5 Objective judgement of skeleton CT sequence |
4 结论1) 本文的自适应调窗算法, 能够根据不同的医学CT序列图像计算出一个适合整个序列的窗宽窗位, 其均方误差、信噪比和峰值信噪比都有所提高, 能够有效地提高灰度识别准确率.
2) 对于可调数据, 通常情况下可以直接沿用本文的N0=0.001 5和N1=0.001 5.若需要更高精度, 也可以在原有的基础上进行适当的微调.
参考文献
[1] | Wolterink J M, Leiner T, Viergever M A, et al. Generative adversarial networks for noise reduction in low-dose CT[J]. IEEE Transactions on Medical Imaging, 2017, 36(12): 2536-2545. DOI:10.1109/TMI.2017.2708987 |
[2] | Goo H W, Goo J M. Dual-energy CT: new horizon in medical imaging[J]. Korean Journal of Radiology, 2017, 18(4): 559-569. |
[3] | Higashigaito K, Euler A, Eberhard M, et al. Contrast-enhanced abdominal CT with clinical photon-counting detector CT: assessment of image quality and comparison with energy-integrating detector CT[J]. Academic Radiology, 2022, 29(5): 689-697. DOI:10.1016/j.acra.2021.06.018 |
[4] | Rajendran K, Petersilka M, McCollough C H. First clinical photon-counting detector CT system: technical evaluation[J]. Radiology, 2022, 303(1): 130-138. DOI:10.1148/radiol.212579 |
[5] | Ohhashi A, Yamada S, Haruki K, et al. Automatic adjustment of display window(gray level)for MR images using a neural network [C]// International Society for Optics and Photonics. San Jose: SPIE, 1991: 63-74. |
[6] | 周振环, 陈思平, 陶笃纯, 等. 医学图像的自动调窗与分割[J]. 生物医学工程学杂志, 2005, 22(2): 331-334. (Zhou Zhen-huan, Chen Si-ping, Tao Du-chun, et al. Medical image automatic adjusting window and segmentation[J]. Journal of Biomedical Engineering, 2005, 22(2): 331-334. DOI:10.3321/j.issn:1001-5515.2005.02.026) |
[7] | 沈琴, 蒋谟文, 骆建华. 一种改进的磁共振图像自动调窗算法[J]. 中国医疗器械杂志, 2011, 35(4): 253-255. (Shen Qin, Jiang Mo-wen, Luo Jian-hua. An improved auto-algorithm for MR image[J]. Chinese Journal of Medical Instrumentation, 2011, 35(4): 253-255.) |
[8] | 吕磊, 赵勋杰. 一种16位灰度图像自动调窗算法[J]. 光电技术应用, 2016, 31(4): 27-30, 45. (Lyu Lei, Zhao Xun-jie. Auto-window algorithm for 16-bit grayscale image[J]. Electro-Optic Technology Application, 2016, 31(4): 27-30, 45.) |
[9] | Mantri M, Taran S, Sunder G. DICOM integration libraries for medical image interoperability: a technical review[J]. IEEE Reviews in Biomedical Engineering, 2022, 15(1): 247-259. |
[10] | Li X R, Morgan P S, Rorden C. The first step for neuroimaging data analysis: DICOM to NIFTI conversion[J]. Journal of Neuroscience Methods, 2016, 264(1): 47-56. |
[11] | Gueld M O, Kohnen M, Keysers D, et al. Quality of DICOM header information for image categorization [C]// Conference on PACS and Integrated Medical Information Systems: Design and Evaluation. Aachen: SPIE, 2002: 280-287. |
[12] | Chen L, Li C Q, Li C. Security measurement of a medical communication scheme based on chaos and DNA coding[J]. Journal of Visual Communication and Image Representation, 2022, 83(5): 168-175. |
[13] | Pieper S, Lorensen B, Schroeder W, et al. The NA-MAC kit: ITK, VTK, pipelines, grids and 3D slicer as an open platform for the medical image computing community [C]//The 3rd IEEE International Symposium on Biomedical Imaging: Nano to Macro. Arlington: IEEE, 2006: 698-701. |
[14] | Avila R, He T S, Hong L C, et al. VolVis: a diversified volume visualization system [C]// IEEE Conference on Visualization. Washington D C: IEEE, 1994: 31-38. |
[15] | Pickhardt P J. Three-dimensional endoluminal CT colonography(virtual colonoscopy): comparison of three commercially available system[J]. American Journal of Roentgenology, 2003, 181(6): 1599-1606. DOI:10.2214/ajr.181.6.1811599 |
[16] | Wolf L, Vetter M, Wegner I, et al. The medical imaging interaction toolkit: challenges and advances[J]. International Journal of Computer Assisted Radiology Surgery, 2013, 8(4): 607-620. |
[17] | Ibanez L, Schroeder W, Ng L, et al. The ITK software guide: the insight segmentation and registration toolkit[J]. Computational Statistics & Data Analysis, 2003, 21(1): 231-256. |