您好,欢迎来到九壹网。
搜索
您的当前位置:首页DICOM医学图像显示算法改进与实现

DICOM医学图像显示算法改进与实现

来源:九壹网
计算机系统应用 201 0年第1 9卷第6期 D I C O M医学图像显示算法改进与实现① 林红利1,2 陈真诚1 王伟胜2(中南大学信息物理工程学院湖南长沙41 0083; 2.湖南大学计算机与通信学院湖南长沙41 0082) 摘要: 为了解决医学图像处理过程中在需要频繁改变窗宽、窗位的情况下图像不能实时显示,显示过程存在 明显迟滞的问题,分析了DlCOM医学图像的显示过程以及传统显示过程中可以改进的地方,提出了 使用统一LUT(Look Up Table)的方法来提高显示效率的解决方法,并使用Bresenham算法改进了 传统的LUT的生成算法。实验结果表明该改进后的算法能提高医学影像的显示效率。 关键词: DlCOM;医学图像显示;Bresenham算法;查找表 Implementation of the Improved Algorithm for DICOM Medical Image Display LIN Hong—Li ’ ,CHEN Zhen—Cheng ,WANG Wei-Sheng ̄ (1.School of lnfo-ph),sics and Geomatics Engineering,Central South University,Changsha 4 1 0083,China; 2.School ofComputer and Communication,Hunan University,Changsha 410082,China) Abstract:To improve display speed of DICOM medical image with continuously adjusting window values,this paper describes the transformation of manufacturer dependent pixel values of DICOM medical image into pixel values that are meaningful for display,and proposes a solution using LUT.Finally,the Bresenham algorithm is proposed to improve the LUT generation algorithm.A gOod result is got and an afifrmation from doctors is made in practice. Keywords:DICOM;medical image display;bresenham algorithm;LUT(Look Up Table) 1 引言 实际医生操作的需要有着重要的实际意义。本文从讨 随着ul(超声成像)、CT(计算机断层成像)、MRI 论DlCOM格式的图像显示过程八手,分析了显示过 磁共振成像)、CR(计算机X线成像)、电子内窥镜、 程中的关键问题,提出了统一LUT的解决方法,并对 P盯(正电子发射断层成像)和Ml(分子影像)等医学影 LUT的生成算法进行了改进。 像设备不断涌现,利用计算机对医学影像设备采集到 的图像进行后处理的医学图像处理与分析技术也越来 2 DICOM医学影像显示过程分析 越成为放射科医生和临床医生进行疾病诊断的重要辅 DICOM是美国放射学会和美国电器制造商协会 助手段。在医学图像的处理过程中医生经常需要频繁 组织指定的用于医学图像存储和传输的标准【1,2】。目前 地变换窗宽、窗位来对感兴趣的病灶部位进行细致的 几乎大部分的医学设备产生的医学图像都是采用这种 研究,但传统的医学图像的显示方法不能达到实时显 格式。作为一种特殊的图像编码格式,通用图像浏览 示图像的目的,图像的显示具有明显的迟滞现象,致 软件并不能直接显示,要显示DlCOM格式的医学图 使医生很多的时间浪费在等待影像的显示中,工作效 像必须将原始图像数据经过一系列的转换才能得到可 率比较低,为此开发新的医学图像的显示算法来满足 直接在显示设备上显示的数据(称之为P—Values)。 ①基金项目:湖南省自然科学基金(394201 04,07J61 33) 收稿时间:2009—09—1 8:收到修改稿时间:2009-11—21 204经验交流Experiences Exchange 201 0年第1 9卷第6期 计算机系统应用 DICOM医学图像显示转换过程如图1所示,需要经 过Modality LUT、VOI LUT、Presentation LUT三 斜率/截 ̄(Rescale/Intercept)变换是一种线性 变换,使用的公式是:标准图像像素值一原始图像像 素值×斜率十截距,斜率和截距在DICOM文件中可以 读取。通过这一步转换后图像像素就从设备有关变成 设备无关了。 个转换过程,最终输出的P Values才是可以直接显示 的图像数据。 PValues 2.2 VOI(Value 0f Interest)LUT转换(感兴趣区转换) 由于医学图像数据动态范围大(像素深度通常不低 于4096个灰度级),因此一般显示器很难提供如此高 圜Rescale/图圈 图1 DlCOM图像像素转换过程 2.1 Modality LUT转换(数据规范化转 通常不同生产厂商的设备很难保证在一种设备上 生成的图像和其他生产厂商的同类型设备上生成的图 像在度量上是一致的,为此就需要将不同设备厂家产 生的图像的原始数据转换到一个标准的度量空间, Modality LUT转换就是完成这个功能的。医疗设备的 生产厂商都会在自己的图像中采用DICOM标准规定 的格式说明如何将自己的数据转换为标准图像数据, DICOM中规定可以使用通过查找表(Look Up Table, 简称LU.r)查找和通过斜率/截距(RescaIe/Intercept) 转换两种方法中的一种。 查找表方法(Modality LU"13是一种非线性变换算 法。一个查找表由很多数据项组成,每一个数据项为 相应原始数值转换后的数据值,同时还会提供~个被 转换为查找表第一个数据项的原始数据的数据值。在 进行数据转换时只要知道被转换为查找表第一项的原 始数据,比原始数据大1的数据则转换为查找表第二 项的值,比原始数据大2的数据转换后的数据则为查 找表的第三项的值,依次类推直到查找表的最后一项。 大于查找表能转换的最大的原始数据则转换为查找表 的最后一项的值,小于查找表能转换的最小的原始数 据则转换为查找表的第一项的值。用公式表示为: f 印≤印一 M(Fp):{ 一‰砜 <印<砜 +Ecount 【‰一1 Fp 仇 +Ecount 其中:M:规范化后的标准图像像素值,Fp:原始像 素值,Fpmin:被转换为查找表第一项的原始数据, M0:LUT中的第一个数据项的值,Mp—pmin:LUT 中第Fp—FpmIn个数据项的值,Ecount:查找表的数 据项个数。 的动态范围一次显示整幅图像的全部信息细节,在图像 的处理中一般都是先选择一个操作者感兴趣的区域,然 后将该区域的图像信息映射到显示器能显示的整个数 据范围,这样就增加了该区域的图像信息的对比度。这 个过程DICOM标准中称之为感兴趣区(value of interest简称VOI)LUT(Look Up Table)转换。临床医 生感兴趣的窗宽、窗位调节功能就是VOf LUT转换的 G 一种算法实现。VOI LUT转换可以使用设置窗宽、窗 II ,●●●●●●●●●,【 , ●● ●位的线性转换算法和通过查找查找表(LUT)转换的非线 【 性算法两种算法中的一种且只能使用其中的一种,具体 翌 使用哪种算法在DICOM文件中有专门的标记来设置。 。 窗宽、窗位线性转换算法是根据预知的窗宽和窗 2  一位值获得需要显示的窗口大小(窗宽)和中心位置(窗 C 位),从而将窗口区域的图像数据线性地转换到显示器 的最大范围内,高于或低于窗口上、下限的图像数据 则分别设置为最高或最暗的显示值。用公式表示为: <C一 /2 C一 /2 S C+ /2 >C+ /2 其中V:图像数据,G:显示器显示值,gm:显示器 的最大显示值,W:窗宽,C:窗位。在这里窗宽是指 需要显示图像的范围,调节窗宽主要影响对比度,窗 宽越大图像灰度层次多,组织对比度减少,细节显示 差,而窗位也称窗中心,表示显示区域的中心位置, 例如骨骼的窗位(C)、窗宽(W)分别为C=400, W=2000,那么就可以利用调窗处理将窗宽调节到骨 骼窗宽,窗位调节到骨骼的窗位,然后利用上面的公 式将图像V换算成显示器显示值,最终得到的结果是 只显示窗口范围内的图像,也就是骨骼。 VOI LUT是一种查找表算法,算法处理过程同 Modality LUT。 2.3 Presentation LUT转换 Presentation LUT是对图像像素要做的最后一 Experiences Exchange经验交流205 计算机系统应用 201 0年第1 9卷第6期 个变换,它用于特定图像的显示。这一模块转换完成 后的输出值为P—Values,P—Values是于任何显 以大大提高图像的调窗处理时间,达到实时调窗的性 能要求。在和医生沟通后我们发现这个想法是可行的, 因为在进行疾病诊断中医生一般会根据医学图像的类 示设备的特性曲线,与人的视觉反应近似相关的值, 可直接作为已经校正的软拷贝设备或硬拷贝的输入。 Presentation LUT转换也有两种转换方法,一种是通 过Presentation LUT进行转换的非线性转换方法, 一型和检查的身体部位不同去查看几种典型的窗宽、窗 位。例如在CT图像中医生频繁使用的是骨骼 (C=400,W=2000),胸腔(C=50,W=350),肺部 (C=-600,W=1 500),腹部(C=45,W=250)等。而 Modality LUT考虑到图像操作时只使用一次,可以将 种是通过Presentation Shape的转换方法,这两 种转换方法只能使用一种。Presentation LUT转换的 过程基本同上面介绍的两种LUT算法。Presentation 从原始像素规范化后的数据值保存在一个矩阵中,每 Shape算法使用INDENTITY和LIN OD两者中的一 次VOU LUT时只要直接使用这个矩阵中的值就可以 个。INDENTITY表示经过VOI LUT转换得来的数据 了,不需要进行算法改造了;Presentation LUT的线 值即P—Values值,不需要转换,一般图像的软拷贝 性处理算法在软拷贝中只使用Presentation Shape 使用这个值;LIN OD是实现图像的硬拷贝时使用的, 中的INDENTITY值也不需要算法改造;所以只需要 在软件的开发中没有使用到就不讨论了O 改造VOl LUT的线性算法就可以了。 . 分析Modality LUT、VOI LUT和Presentation 3算法改进 LUT发现DICOM标准的LUT是由多个数据项组成, 在图像后处理软件的开发过程中我们发现一幅 第一个数据项保存的是第一个被转换的原始数据在查 DICOM图像从调入,到显示需要的时间比较长,而且 找表的对应值,第二个数据项为第一个被转换的数据 医生在利用医学图像进行疾病诊断的过程中需要频繁 项+1的原始数据项在查找表中的对应值,依次类推, 地变换图像的窗宽、窗位来对感兴趣的区域进行仔细 其数学表示方法为:Y[O]=F(XO),Y[1】:F(×O+1), 的研究,每次调窗处理后图像的显示具有明显的迟滞 Y[i]=F(XO+i),其中i的取值范围为【0一LUT数据项个 现象,达不到医生的临床诊断要求,为了能动态、实 数1,X0表示第一个被转换的原始数据。结合我们要 时地对图像进行调窗必须改进图像处理算法,缩短每 实现的算法,要将线性算法改造成LUT算法首先必须 次图像调窗处理时间。 计算出第一个被映射的原始数据的值,被映射的原始 3.1使用统一的LUT算法 数据的个数(决定了要构造的LUT中数据项的个数), 通过分析图像显示过程,我们发现医学图像从原 然后是构造LUT。考虑到经过VOl LUT转换后的灰度 始数据到P—Values要经过Modality LUT、V0I LUT、 值最小为0,最大为2S5,灰度间隔为1,因此第一 Presentation LUT三个处理步骤,而Modality LUT、 个被映射的原始数据的值为X0=C-0.5一(W一1)/2, VOI LUT又有线性变换和非线性变换两种算法,其中 LUT数据项的个数为W,其中C为窗位,W为窗宽。 非线性变换算法是采用查找表的方法,这种方法相比 3.2 LUT生成算法优化 线性变换算法来说的优点是变换效率高,而内存的占 最简单的LUT生成算法是将取值范围在C—W/2 用会大些;而线性变换算法的优点是内存占用少,但 -C+W /2之间的的整数(DICOM中图像图像为整数) 算法效率不高,例以51 2 X 51 2的一幅医学图像来说, 使用VOI LUT转换中的线性算法公式进行计算后保存 每一次VOI LUT变换需要进行51 2×51 2次的浮点 到LUT中。分析发现这个线性算法需要进行大量的浮 数乘除法运算,对实时性要求比较高的医学图像处理 点数的乘法和除法运算,是比较耗时间的,如果能对 来说性能上是难以接受的,为此借鉴LUT的非线性处 这个线性算法进行改进将能提高图像的处理效率。再 理方法考虑将线性处理算法改造成LUT算法,同时找 看线性转换的公式: 出医生实际操作时频繁需要的调窗操作对应的窗宽、 <C一/k"/2 窗位提取出来,在图像装入的时候创建其相应的LUT, C一 ,2≤ ≤C 4- /2 这样在医生进行调窗处理的时候不需要重新生成 >C+ /2 LUT,直接从对应的LUT表中查表就可以了,这样可 可表示为G=av+b的形式,生成查找表的过程和 206经验交流Experiences Exchange 201 0年第1 9卷第6期 计算机系统应用 的值 画直线的过程是一样的,因此可以使用计算机图形学 中的直线扫描转换算法来对线性算法进行优化。直线 扫描转换算法可以将大量的浮点数乘法、除法运算转 换成加法和减法运算,提高运算效率。常用的直线扫 描转换算法有数值微分(Digital differential analy- k=256/i—Ecount:1/256为显示器的能表示的灰度 值个数,即LUT的最大值 e=一0.5: x=i—FValue;//第一个被转换的原始数据值 y=0://转换后的第~个数据值,LUT的第一项数据值 for(int i=0;i<:i—Ecount:i++) zer,DDA)算法I3,41、中点画线算法【s1、Bresenham 算法【6,71,其中以Bresenham算法效率最高,因此考虑 使用Bresenham算法来生成LUT。 3.3改造后算法 在系统设计时我们使用一个全局的链表来保存当前 { P=y: //将数据项保存到向LUT P++//指针前指 x=×+1://被转换的原始数据值加1 e=e+k://e在这里表示对应的查找表数据项的值是 否需要加1,当e>0时表示查找表的数据项的值要加1 if(e>0)//如果误差e>0则查找表数据项值加1 {y++:e=e一1:} }//循环结束 , 系统中设置了哪些窗宽、窗位的信息,链表中的每个结 点保存的数据类型是一个结构体,结构体的定义如下: typedef struct WindowPar//定义结构体 {int i_count;,/查找表数据项数 int|-FirstValue;//映射到查找表第一项的原始数据的值 int LUTP;,,指向查找表的指针 ) 3.4优化效果 通过优化后,效果比较明显,达到了医学图像实 时调窗的要求。另外算法还可以继续完善,下一步我 们计划借鉴计算机操作系统对内存的调度方法来进一 步优化LUT的生成管理。 将Bresenham算法应用于LUT的生成的最终算法为: Void CreateLutOnt C。int W)//创建LUT {//C:窗位,W:窗宽 int._Ecount,.-FValue;//i—Ecount:查找表数据项数 目,i—FValue:映射到查找表第一项的原始数据 struct WindowPar WinP;//WinP:查找表结构变量 //计算LUT数据项的个数 i—Ecount=W: 4结语 本文在分析DlCOM医学图像显示过程的基础上, 使用LUT来统一DlCOM医学图像的处理过程,并对 LUT的生成算法进行了改进,并给出了具体的代码实 现。实验证明改进效果明显,具有很好的实用价值。 参考,:献 //计算第一个被映射的原始数据的值 i—FValue=(int)(C-0.5一(W一1)/2)?: //创建LUT数据结构 int p=new int[i Ecount]; //设置保存窗宽、窗位以及该窗宽、窗位下的LUT的 首地址的信息到一个全局链表中,链表中的数组元素的类型 是一个结构体 WinP.--count=.-Ecount; WinP..-FirstValue=-_FValue; WinP.LUTP=p: l田捷,包尚联,周明全.医学影像处理与分析.北京:电 子工业出版社,2003.20—40. 2 ACR/NEMA.Digital Imaging and Communication in Medicine,draft Standard 3.0 2003,from fIp://邱. nema.org/medi2cal/dicom,2008.7. 3 Hearn D,Baker MP.Computer Graphics.2nd ed., Bering:Tsinghua University Press,1 998.1 20—1 27. 4 Bresenham JE.Algorithm for computer control of a //生成一个新的结点并加入到全局链表中,此处代码 省略: //循环执行Bresenham算法 //在这里因为显示器能表示的灰度范围为0—2S5, 因此查找表的数据项的最小值为0,作为查找表的第一个数 据项,数据项的最大值为2 5 5为查找表的最后一个数据项。 float k,e: digital plotter.IBM System Journal,1965,4(1):25—30. 5刘晶,李俊,孙涵.改进的Bresenham直线生成算法.计 算机应用与软件,2008,25(10):133—137. 6贾银亮,张焕春,经亚枝.Bresenham直线生成算法改 进.中国图形图像学报,2008,13(1):20—24. 7孙岩,唐棣.并行的Bresenham直线生成算法.计算机 工程与应用,2001,37(21):136—140. Experiences Exchange经验交流207 int X,y;//x表示被转换的原始数据值,Y表示转换后 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务