基于DICOM标准的医学图像的显示方法研究

万方数据

万方数据

328内蒙古科技大学学报2009年12月第28卷第4期

f0,y<C一吖2

G(y)={255×(y+W/2一C)/W,2≤V≤C+W/2【255.y>c+彬/2

其中,y为图像数据;G(V)为显示器的显示值;255为显示器的最大显示值;W为窗宽;C为窗位.如果DICOM文件中未标记窗宽窗位,就应该在整个图像内找到灰度最大值max和最小值min,设置窗宽形=max—min,窗位C=(max—min)/2.

相对于线性变换而言,人眼对非线性变换的敏感度更高一些,所以在图像的调窗处理中,采用非线性变换所获得效果要更好一些.非线性变换的数学表达为(非线形变换的方法比较多,在介绍其中的——种):Y=255×POW((X一(C—W/2))/形,1/Gamma),其中POW函数为指数函数;Gamma为非线性参数;C为窗位;W为窗宽.当Gamma=1时,此非线性算法即为线性算法.

2.5构建DIB数据块显示图像

构建自己的CDib类,把DICOM像数数据通过CDib的read()函数从内存中读取并显示出来,如图2.

图2头部MR图像调窗处理对比图Fig.2

WindowtransformationcontrastofheadMR

image

3借助工具包显示DICOM文件

3.1DCMTK工具包实现DICOM文件的显示DCMTK-1是免费开源的针对DICOM标准的开发包.DCMTK由一组软件库和应用程序的源代码、文档与安装指导构成,实现了部分DICOM标准.下面对部分模块进行简单介绍:模块dcmdata包含用于管理DCMTK数据结构和文件的类,当需要DI-

COM存储介质时dcmdata也为DICOMDIR提供支持.DcmObject是DICOM文件(宰.dcm)中所有数据对象的基类,它实现了一些基本的方法.它派生了DcmElement类和DcmItem类.DcmElement是DI-COM文件的基本元素,DcmElement为所有DICOM元素的抽象基类.Dcmltem是这些数据元素的一个集合(它的主要数据成员是DcmElement对象的list),Dcmltem的派生类DcmDataset更能体现这一点.类DcmDataset处理DICOM数据集格式(没带元文件头的文件).模块dcmdata中,主要接口类是Dc-mFileFormat,DcmDataset,Dcmltem,DcmElement.Dc-mFileFormat类非常重要,它处理带有元文件头的DICOM文件格式,间接派生于DcmElement.模块Dcmlmage包含了访问与处理DICOM彩色图像的类.单色图像的处理由模块DcmImgle提供.模块Dcmlmage的主要接口类是DicomImage.模块Dc—mImgle的主要接口类是Dicomlmage与DIDiplay—Function.

利用DicomImgle类来实现对DICOM格式文件的读取显示.需要调用以下函数:DicomImage()和Createwindowsdib(),其中Dicomlmage()用来打开一个DICOM文件,把像素数据存在内存中,并且Cre?atewindowsbib()用来创建dib位图,利用自己定义的dib类来调用这个函数把图像显示在显示器上.flipImage()函数的功能是把图像倒转1800.DCMTK中的DicomImage类提供的setwindow(髫,Y)函数可以实现对窗宽窗位的调节,石是窗位,Y是窗口.DC—MTK为我们提供了实现DICOM协议的一个平台,使得我们可以在它的基础上轻松地完成自己的主要工作,而不必把太多的精力放在实现DICOM协议的细节问题上.下面是显示代码:

DicomImage串image=newDicomImage(”test.dcm”);

image一>fliplmage(0,1);

DWORDGetNum=image一>

createWindowsDlB(pixdata,pixnum,0,8,0,1);3.2VTK实现DICOM文件的显示

VTKl61是一种运用面向对象技术开发的资源共享软件,它被用于计算机绘图、可视化以及图像处理方面.VTK库的框架结构VTK是一个面向对象的可视化系统,它将可视化过程中常用的算法封装起来,隐藏了具体的细节.用面向对象技术的对象模型图

表示VTK的绘制过程,如图3所示.万方数据

万方数据

万方数据

相关主题
相关文档
最新文档