基于Delphi的DICOM图像显示系统的设计与实现
2012-10-09朱启标陈素华黑亚莉
朱启标,陈素华,黑亚莉
南昌大学 电子信息工程系,江西南昌 330031
基于Delphi的DICOM图像显示系统的设计与实现
朱启标,陈素华,黑亚莉
南昌大学 电子信息工程系,江西南昌 330031
DICOM标准已成为医学图像通用标准,DICOM文件结构复杂,常见的图像处理软件无法显示DICOM图像。在对现有的DICOM图像显示技术进行系统研究的基础上,利用Delphi快速开发的特点,设计并开发了DICOM图像显示系统。该系统能够正确显示DICOM图像及其文件信息,并具有多幅图像对比显示、图像反色显示、亮度和对比度调节等图像处理功能。该系统不仅解决了医学图像在Windows系统平台的显示问题,还可将医学图像的主要文本信息提取并显示出来,便于医学图像的后续研究。
DICOM;医学图像;图像显示系统;图像处理;Delphi
目前,大多数医学图像都遵循医学数字影像通讯标准(DICOM)[1],但现有的大多数图像处理软件都不能直接读取和显示DICOM 格式的医学图像[2]。而DICOM文件结构复杂,多数研究人员采用Visual C++编程开发[3-5],且研发需要投入大量的时间和精力。本文利用Delphi快速开发的特点,设计开发了DICOM图像显示软件系统,实现了DICOM图像及其文件信息的显示,便于医学图像的后续处理。
1 DICOM文件结构
DICOM文件可分为文件头和数据集2部分。其结构图,见图1。
图1 DICOM文件结构
文件头是可选的,其中,前同步码长128字节(B),没有结构,不能作为数据元素编码,它的存在是为了提供与一些通用的计算机文件格式的兼容性(BMP文件头为128B)。当一个文件被切割成多个部分时,文件头可以存放随机访问图像所需要的信息。当文件头没有被使用时,它应该设为全零。前缀长4B,为大写字符“DICM”。每个文件包含一个数据集,代表一个信息对象的实例。数据集是数据元素的有序集合,数据元素在数据集中按照数据元素标识符(Data Element Tag)增序排列。数据元素由数据元素标识符唯一标识,在数据集中最多只能出现一次(嵌套数据集除外)。
在DICOM文件中数据元素由4个域组成,见图2。
图2 DICOM文件数据元素构成
DICOM文件提供了一种封装方式,将DICOM信息对象定义IOD的一个SOP实例以数据集的形式封装在一个文件中。数据集的字节流位于DICOM文件元信息之后,每个文件包含一个单一的SOP实例。
DICOM文件的读取可采用面向对象的思想来设计和实现。每个DICOM 文件通常都与一个信息对象IOD(Information Object Definition,IOD)的实例相关联。信息对象是对实际对象的抽象,普通信息对象(Normalized IOD)代表一个单一的信息实体,如病人(Patient)、诊断(Study)、打印(Print Job)等;复合信息对象(Composite IOD) 代表一组相关的实际对象的集合,如CT图像(Computed Tomography Image)、磁共振图像 (Magnetic Resonance Image,MRI)、核医学图像 (Nuclear Medicine Image,NMI)等。
信息对象由模块构成,模块是相关的属性的集合,属性是对实际对象某种特性的抽象描述。在文件中属性以数据元素的形式出现。相同的属性可以出现在不同的模块中,但在文件中只能编码一次。唯一标识符UID(Unique Identifier)可以用来唯一地标识一个信息对象和其他信息项。
用UltraEdit软件打开一幅DICOM图像,用十六进制形式观察DICOM文件的文件头结构,见图3。可以看到前同步码长128B都设成00H,文件前缀为4个字节的字符串“DICM”。
图3 DICOM文件部分数据
2 系统设计要求与设计流程
在Windows系统平台上实现DICOM图像和相关信息的读取与显示,使其能够显示位图图像,具备常见的图像处理功能,并能以位图形式保存。
系统设计流程图,见图4。首先要通过头文件判断图像类型,若是DICOM图像,首先要读取一些和图像相关的文本信息,如患者姓名,患者ID,获取图像时间,图像的窗宽窗位等;其次读取图像的像素数据,对像素数据进行调节,以便显示DICOM图像。对最后显示的DICOM图像,可以进行一些图像处理操作并存储。
图4 系统设计流程图
3 系统开发
根据设计要求和流程图,构造一个DICOM类,采用面向对象方法,利用Borland公司的Delphi开发工具进行系统开发,开发过程中参考了国内外的相关资料[6-9]。
3.1 图像读取与存储
只要符合位图的格式要求,图像的显示不难实现,但对于DICOM图像的显示,需要通过如下步骤进行:
(1) 读取头文件。判断前缀是否为DICOM标志,其主要程序如下:
BlockRead(fp, tx, 4*SizeOf(Char), n); //读取4B
if (tx[0] ='D') OR (tx[1]='I') OR (tx[2] ='C') OR (tx[3] = 'M')then
编写程序时,可将文件过滤类型设置为BMP和DICOM格式文件,这样在单击“打开”文件时,会过滤掉其他无关文件而只显示.bmp和.dcm类型的文件。
(2)读取数据元素。根据group tag和element tag查找数据元素标签。按标签顺序,首先读取传输语法;其次读取与图像有关的文本信息,如患者姓名,图像的宽高,当读取到像素数据标签(7FE0,0010)时即可;最后读取图像的像素数据。
要显示DICOM图像,就需读取DICOM图像的所有像素数据。DICOM数据集中,最后一个数据元素为像素数据,该元素中存储了图像的像素信息。当找到图像数据存储标签(7FE0,0010)时,指针往后移8位就是像素的起始位置。读取像素数据主要程序如下:
(3)灰度等级转换。这是针对图像各像素值进行处理,改变原始图像中各像素值的大小。BMP图像中,其存储像素的蓝、绿、红3个字节的值相等就构成了黑白图像,因此,在显示黑白图像时,这3个字节只包含1个字节的信息量,从而BMP图像只能包含8位256个灰度等级。而DICOM的12位灰度图像可以包含4096个灰度等级。将12位的DICOM图像转换为BMP图像,必须进行变换。变换之前,要先读取DICOM图像中的窗宽、窗位值。根据窗位确定中间值,低于窗宽的显示为最暗,高于窗宽的显示为最亮。窗宽范围内的值通过线性变换转换为<256的值。由于人眼的分辨率有限,256个灰度级基本能满足人眼的视觉要求。进行灰度等级转换以后,DICOM图像就可以显示了。
像素值转换关系如下:
上面公式中的图像数据值,是计算机操作平台上显示值,分别为窗宽和窗位。
(4)图像存储。该部分实现的功能是将DICOM图像转换成BMP格式的图像,便于存储阅读和后续研究。
3.2 图像处理
(1)图像反色显示。在计算机上DICOM图像以位图形式显示,因此,为实现图像反色显示,需将显示图像中的每个像素的像素值取出,再用255减去该像素值,得到的差值作为处理后的图像中相应像素的像素值。
(2)图像亮度调节。亮度是颜色的相对明暗程度,通常使用从0%(黑色)至100%(白色)的百分比来度量。通常有亮度增强和亮度降低调节。将原始图像的每个像素值增大,就可以增强图像亮度;将原始图像的每个像素值减小,就可以降低图像亮度。在本系统中,每次点击“亮度增强”,则像素值增加10个单位;点击“亮度降低”,则减去10个单位。
(3) 图像对比度调节。在实践中用的较多的是图像锐化,即对比度增强处理,目的在于使图像的边缘、轮廓线以及图像的细节变的更加清晰。方法是将原始图像像素的像素值与边缘上相邻像素的像素值之差除以2并和原像素值相加,再将该值作为处理后的图像像素的像素值。
系统经过调试,编译运行后,用计算机断层扫描(CT)、核磁共振成像(MRI)等不同模态的DICOM图像进行测试,均可正确显示。可以打开单幅和多幅DICOM图像,并将DICOM图像的一些主要信息显示在子窗口上。当打开多幅DICOM图像时,多幅图像可以平铺排列或叠加排列,这样还可以同时观察对比多幅图像。打开单幅图像,见图5。
图5 DICOM图像显示
4 结束语
本文在研究DICOM图像显示技术的基础上,利用Delphi开发工具设计并实现了DICOM图像显示系统。该系统能够正确显示DICOM图像及其文件信息,并具有多幅图像对比显示、图像反色显示、亮度和对比度调节等图像处理功能,具有一定的实用价值。目前,该系统已经用于教学科研,不仅解决了医学图像在Windows系统平台的显示问题,还可将医学图像的主要文本信息提取并显示出来,便于医学图像的后续研究。
[1] National Electrical Manufacturer Association.Digital Imaging and Communication in Medicine(DICOM)[S].1999:66-69.
[2] 寇海洲,陈宏明,章慧,等.DICOM图像处理技术研究[J].徐州医学院学报,2008,28(7):487-490.
[3] 李清美.DICOM格式医学图像的读取与显示[J].泰山医学院学报,2010,31(8):609-612.
[4] 高升,葛云.DICOM格式医学图像及其图像信息的显示[J].中国医学物理学杂志,2010,27(3):1885-1888.
[5] 彭波,赵春明.DICOM图像中覆盖的提取及显示方法研究[J].微计算机信息,2011,27(5):10-11.
[6] 蒋先刚.基于Delphi的数字图像处理工程软件设计[M].北京:中国水利水电出版社,2006.
[7] 方勇,刘向峰,罗玉文.基于DICOM3.0标准构建放射治疗数字系统[J].中国医疗设备,2011,26(7):51-52.
[8] Wolfgang Krug,Chris Rorden.ezDICOM DICOM viewer.[CP/OL].(2008-09-01)[2012-02-20].http://www.mccauslandcenter.sc.edu/mricro/ezdicom/index.html.
[9] Seyyed Ehsan Mahmoudi.Web-based interactive 2D/3D medical image processing and visualization software[J].Computer Methods and Programs in Biomedicine,2010,98(2):172-182.
Design and Implementation of DICOM Image Display System Based on Delphi
ZHU Qi-biao, CHEN Su-hua,HEI Ya-li
Department of Electronic Information Engineering, Nanchang University,Nanchang Jiangxi 330031, China
TP311.52
A
10.3969/j.issn.1674-1633.2012.07.007
1674-1633(2012)07-0033-03
“DICM”
2012-02-20
南昌大学科学基金资助项目(Z04001)。
本文作者:朱启标,硕士研究生,主要研究方向:图像处理。
作者邮箱:zhuqibiao2011@163.com
Abstract: The DICOM standard has become the international standard for the medical image. General image processing software can not display DICOM image since the structure of DICOM fi les is complex.By studying the typical DICOM image display technique systematically, the DICOM image display system was designed and developed by making use of rapid development of Delphi. This system can display the DICOM image with its fi le information correctly, and it has many functions of image processing, such as contrast display of multi-image, image reversal display, brightness and contrast adjustment.
Key words: DICOM; medical image; image display system; image processing; Delphi