APP下载

基于Imebra医学影像处理系统的设计*

2013-07-02马文忠王炳石陈国华

自动化与信息工程 2013年1期
关键词:医学影像图像处理标签

马文忠 王炳石 陈国华

(广东药学院医药信息工程学院)

基于Imebra医学影像处理系统的设计*

马文忠 王炳石 陈国华

(广东药学院医药信息工程学院)

基于对DICOM协议的解析和数字图像本身的处理,介绍了一种新的框架,提出使用Imebra库处理底层的DICOM文件结构,结合其它数字图像处理和显示技术,进行医学图像处理,并介绍了如何设计一个管道使库协同工作,最后通过一个具体的演示程序展示了该管道的工作机制。

医学图像处理;Imebra库;DICOM标准;Cimg库;Gdiplus

0 引言

自从德国科学家伦琴在1895年发明X射线以来,计算机断层成像(computed tomography,CT)、核磁共振成像(magnetic resonance imaging,MRI)、计算机X线成像(computed radiography,CR)、B超、电子内窥镜等现代医学影像设备先后出现,使传统的医学诊断方法发生了根本性的变化。随着医学成像技术的发展,以及计算机和通讯技术与医学影像科学的相互渗透,使医学影像技术在现代医学诊断中的作用越来越重要。在1997年第83届北美(美国芝加哥)放射学会年会上不少学者甚至感叹“Image is everything.”(影像就是一切)。

医学影像处理与分析是在计算机技术、物理学、医学等学科基础上发展起来的,可以辅助医生进行更好、更准确的诊断。随着现代计算机科学技术的发展,医学影像处理与分析受到越来越多的重视,现已成为一门新兴、发展迅速的交叉科学。

医学影像处理系统是临床医学、医学影像学、数字图像技术与计算机技术、网络通讯技术相结合的产物[1,7]。它将医学影像资料转化为计算机能识别处理的数字形式,通过计算机及网络通讯设备,完成对医学影像信息及其相应信息资料的采集、存储、处理及传输等功能,使医学信息资源共享,并得到充分利用。医学影像处理系统被认为是多媒体电子病案管理系统的重要组成部分。它使临床医师能迅速、准确获得所需要的医学影像信息及其相关的医学影像诊断报告、病历资料、病情记录、临床检查(检验)报告、治疗记录等信息,以及查询与该医学影像相关的多种影像设备的图像信息,以便对医学影像作全面综合分析,制定出明确的诊断报告和拟定恰当的治疗方案。

医学影像处理与分析的研究范围非常广,需要多学科的交叉,其中一个最基础的问题是医学影像数据的存储、交换、提取和显示,这也是医学数字影像和通信标准(digital imaging and communications in medicine,DICOM)协议设计的初衷。与DICOM有关的开源程序库很多,其中OFFIS的DCMTK (DICOM ToolKit)[8]可能是最有名者之一,基本能够处理有关DICOM的各方面问题,从图像处理、网络通信到图像数据库服务等,几乎无所不包;VTK[2-3,12]中虽然也有DICOM文件接口,但VTK侧重于图像可视化处理;Imebra[4]是个小巧精致的开源DICOM图像处理程序库,主要用来解析DICOM格式的文件,侧重于底层存储和数据交换方面的处理,也包括一些其它的辅助功能,主要特征包括:

➢ 多平台:支持各种主要操作系统;

➢ 自包含:只使用标准C语言库和标准模板库,不借助外部的函数库;

➢ DICOM文件解释和创建;

➢ 图像文件压缩与解压;

➢ 彩色空间转换;

➢ 支持嵌入数据集(即序列数据元素)。

本文主要介绍使用DICOM图像库Imebra,结合其它显示和处理库,进行医学图像处理系统的设计。

1 医学图像存储的DICOM格式

DICOM标准早已获得了与医学影像有关的各个领域的研究和开发人员的广泛认同。DICOM包括了医学的数字成像和通讯两个方面[6-7,9-10]。自20世纪70年代以来,各种医学成像技术得到了迅猛发展,几乎每个医学成像设备厂商都研制了具有自己独自特色的图像格式,这使得不同厂商之间的图像信息难于交换。随着计算机网络的普及及其在医学上的应用,在不同厂商生产的设备之间交换图像和相关的信息需求日趋迫切,而缺乏统一的标准成为图像交换的主要障碍。为此,美国放射学院(ACR)和国家电气制造商协会(NEMA)在1983组成一个联合委员会发起制定了一个公共的标准,主要目的是有助于开发和推广图像存档和传输系统(picture archiving and communication systems,PACS),并能与其它医学信息系统联系。经过多年的努力,终于在1996年,ACR-NEMA 委员会发表了一套新的规范,命名为DICOM 3.0,并被众多的厂商及机构接受和采用。此后,DICOM标准不断吸纳各方反馈的有用信息,从不同专业角度对规范进行扩充,1998年推出了修订版本,目前仍然在不断的发展中[17-18]。

DICOM标准的第十部分,描述了图像发布的文件格式。该格式是旧NEMA标准的一个扩展。对于一个与DICOM标准的第十部分相容的图像文件,一般称之为DICOM格式的文件。一个单一的DICOM文件既包括一个头部信息(其中存贮病人姓名,扫描类型,图像维数等信息),又包含图像数据本身(可以是三维信息,虽然多数情况下每个文件包含一个图像)。DICOM的图像数据可以是压缩的,既可以使用有损或无损的JPEG格式进行压缩,也可以使用无损游程编码格式进行压缩。对医院来讲,DICOM是接受扫描图像的最常用标准。

例:一个典型的医学影像文件,MRI.*,大多数没有扩展名,也可以是.DCM。

数据元素是DICOM文件最基本的单元。DICOM数据集合就是由DICOM数据元素按顺序排列组成的,如图1所示。

DICOM数据元素由4个部分组成:标签、VR(值表示方法)、数据长度和数据域。DICOM数据集合和DICOM数据元素的关系如图2所示。

图1 一个DICOM文件的结构

解释一个DICOM文件的过程首先是分析DICOM文件头,然后是顺序分析每个数据元素。其中一个特别重要的数据元素是0002:0010,它定义了“Transfer Syntax Unique Identification”,即所谓传输句法标示。在数据集能够进行交换之前,必先将数据集编码确定为字节流。该“Transfer Syntax UID”不仅报告了压缩技术方面的信息,还报告了数据的字节顺序,即所谓大端和小端的问题。

2 Imebra主要功能

Imebra的设计主要是处理DICOM数据结构方面的问题。除了一些与操作系统有关的底层处理对象之外,其它对象基本与DICOM结构有关。其中几个典型的对象包括:

1) 数据集对象(dataset)是按组组成的一个DICOM标志的集合,对应于DICOM数据集合。各个组由它的ID表示,它不唯一。例如,如果dataset中嵌入多幅图像,则其中可有具有相同ID的多个组。实际上,这只出现在老的DICOM流之中,因为新的DICOM流应使用“序列”以达到相同的效果。

存贮在dataset中的信息表示了1或多个相关DICOM对象的内容。例如,它可以包含一个病人的信息及他的一次检查的图像。与一个对象有关的信息可以分布在多个组,dataset可以存取它包含的所有组和标签。例如,对于图像,图像本身的属性存贮在组0x28之中,而像素则存贮在组0x7feo之中。

2) 组对象(group),一个组是一个DICOM标签的集合,各个组有一个数字ID标识。当一个组在一个dataset中出现多次时,它可由一个连续数字来标识。属于同一个组的标签在DICOM流中存贮在一起。

3) 标签对象(tags),一个标签存贮与DICOM流的单一属性相关的一条信息。例如,一个标签可以存贮病人的姓名,而另一个标签则可存贮病人的年龄。各个标签也由一个数字ID标识:在同一组中的标签ID必须唯一。偶对(组ID,标签ID)确定了标签的目标。例如,标记0010,0010(groupID=0x0010,tagID=0x0010)用于存贮病人的名字,不能用于其它目的。

4) 数据对象(data),用来存储一个单一DICOM标签的数据域。

5) 缓冲对象(buffers)。通常,一个DICOM标签只能存贮一条信息,但有时也可以存贮多条信息,当标签在数据流中不定长度时,就会发生这种情况。各条信息都存贮在一个缓冲之中,用序号分隔。

6) 数据处理者对象(data handlers),一个数据处理器与一个缓冲相连接,用于读、写其中的数据。数据处理器可以读写多种形式的数据(string,number,data,……)。Imebra中各个对象之间的关系见图3。

图2 数据集合和数据元素的关系

图3 Imebra中各对象之间的关系

通过Imebra读写一个DICOM文件或一个JPEG文件,首次需要创建一个流(文件流或内存缓冲流),然后创建一个数据集对象(dataset),Imebra会自动检测流的格式。例如,可以使用文件流以“读”模式打开文件“test.dcm”:

其次再创建一个streamReader对象,它能够解释由流所管理的文件内容,并从中获取数据。最后创建一个dataSet结构,其中包含了文件中定义的DICOM标签。

上述代码获取一个指向puntoexe::codecs::Factory的指针,然后由它从指针的流中装入数据。编码工厂(CodecFactory)会自动检测数据格式,判断是DICOM文件还是JPEG文件。

3 利用Imebra进行医学图像处理

Imebra库用源代码的方式提供,利用Imebra进行医学图像处理,首先将Imebra库的源文件加入项目中。Imebra是Puntoexe库的一部分,所有源码文件都位于“Puntoexe_library”目录的子文件夹中。将Imebra库加到项目中的第一步是将下列目录中的所有文件加到项目之中:

1) puntoexe_library/imebra/src;

2) puntoexe_library/base/src。

这些目录中的文件都是cpp源文件。对所有这些Imebra源文件,都应该取消使用预编译头。其次编译器必须支持RTTI。如果在Windows上编译应用程序,应定义预处理符号WIN32,在EVC中为:_WIN32_WCE。这些在项目属性中定义即可。如果在Windows NT、2000、XP、Vista中编译应用程序,须将预处理符号_WIN32_WINNT定义为0x0400或更大。

将Imebra库加入到项目后,初始化一个数据集,当从一个流中装入一个数据集之后,将会自动设置使用的字符集列表。一旦数据集从流中建立后,应即刻检查tag 0008,0005,它的内容将传递给字符集列表。下面是利用数据集访问DICOM文件中具体数据的几个主要方法。

3.1 在dataSet中读或写一个标签中的数据

一旦数据集被创建或装入,应用程序就可以向或从dataSet的标签中读或写数据。下面的示例代码段,用来读取病人姓名的前2个组成部分,一个病人的姓名可有五个组成部分(lastname,middle name,first name,…),细节可参考DICOM标准。

3.2 读一幅图像

dataSet提供了一个函数,可以很容易解压一幅嵌入在dataSet中的图像。如下示范代码读取了嵌入在一个dataSet中第一幅图像:

注意,一幅图像应经模态VOILUT变换处理,以将它与采集设备有关的采样值转换为有意义的颜色值。下面的代码对图像进行了模态VOILUT变换:

进一步的处理可能需要将“convertedImage”转换为适合于在屏幕上显示的图像。VOILUT变换使用的是dataSet提供的原始图像灰度值,可能是12位或16位的灰度值,并不适合在窗口系统中显示。要让它适合于窗口系统,须转换为8位灰度值,例如:

此外,如果需要,也可使用colorTransformsFactory,将它转换为RGB格式的彩色图像。

3.3 访问图像像素

访问一幅DICOM图像中的各个具体像素的值,必须使用“图像数据处理器”来进行处理。例

最后利用Gdiplus或Cimg[5]等图像库将装换后的图像绘制出来并进行各种必要的操作处理,做出的示例程序如图4所示。

图4 利用Imebra结合Gdiplus创建的示例应用程序

4 结束语

DICOM已成为医院信息系统中集成数字影像系统的一个不可或缺的组成部分[13-17]。然而“DICOM”本身并不能确保在所有医院信息系统的集成中能够“即插即用”,而需要将DICOM提供的各个部分的解决方案加以组合。一个DICOM文件的主要部分是其中嵌入的影像,而医学影像的目标是帮助医生进行诊断,因此医学影像处理是DICOM应用的主要内容。虽然当今有多种开源的DICOM库可供使用,但尚无一个处于绝对领先地位。本文介绍了一种新的解决方案,能给整个DICOM社区带来一些新的促进力量,它既易于使用,同时在很多方面也有非常强大的功能,在将来定能获得广泛关注。

[1] ACR-NEMA DICOM Pages: http://medical.nema.org/ DICOM.

[2] VTK Home: http://public.kitware.com/VTK.

[3] ITK Home: http://www.itk.org.

[4] Imebra Library Home site: http://www.puntoexe.com.

[5] Cimg Library Home site: http://cimg.sourceforge.net/index. shtml.

[6] DCKTK Questions: http://forum.dcmtk.org/faq.

[7] NEMA. Digital Imaging and Communication in Medicine (DICOM)[M], 2004.

[8] OFFIS web site: http://www.offis.uni-oldenburg.de/projekte/ dicom/dicom_main_e.html.

[9] Oleg S. Pianykh. Digital Imaging and Communications in Medicine (DICOM): A Practical Introduction and Survival Guide[M]. Springer, 2008.

[10] Herman Oosterwijk. DICOM Basics[M]. 2nd Edition. OTech Inc. 2002.

[11] Korner, M, Weber, CH, Wirth, S, Pfeifer, KJ, Reiser, MF, Treitl, M. Advances in Digital Radiography: Physical Principles and System Overview[J]. RadioGraphics 2007, 27: 675-686.

[12] Will Schroeder ,Ken Martin, Bill Lorensen.The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics[M], 2nd ed., Prentice-Hall, Old Tappan, N.J., 1998.

[13] C Upson, T A Faulhaber Jr, D Kamins et al.The Application Visualization System: A Computational Environment for Scientific Visualization[J], IEEE Computer Graphics and Applications, 1989, 40(9): 30-42.

[14] Slichter, Charles P. Principles of Magnetic Resonance[M], 3rd edition. Springer-Verlag, Heidelberg. 1996.

[15] Nitz, W. R. MR Imaging: Acronyms and Clinical Applications[J]. European Radiology, 1999, 9:979–997.

[16] Davis, Andrew W. DICOM: a standard for medical image communication. Advanced Imaging, 1997,12(2): 36-38.

[17] National Electrical Manufacturer Association. Digital Imaging and Communication in Medicine(DICOM)[M],1999.

[18] 贾克斌,沈波.实现医学影像存档和传输系统中的若干关键技术[J].中国图像图形学报,2000,5(A) (7):539-544.

Medical Image Processing with Imbra

Ma Wenzhong Wang Bingshi Chen Guohua

(School of Med-Info Engineering, Guangdong Pharmaceutical University)

Medical image processing is important in hospital solutions and DICOM applications. Although there are many open source libraries for DICOM today, there are still no a dominant one adopted by most applications. This paper introduces a new framework that is easy to use and yet powerful in many aspects. It is proposed to combine the Imebra Library with the famous CImg Library to do medical image processing. After a brief introduction to the functions of both Libraries, this paper has presented how to design a pipeline to make the two libraries work together. A demonstrating system is presented at thelast of the paper to show the works of the pipeline. It is believed that the cooperation of the two libraries provide an excellent solution to medical image processing and will be succeed in the future.

Medical Image Processing; Imebra Library; DICOM Standard; Cimg Library; Gdiplus

马文忠,男,1992年生,本科生,研究方向:医学智能。

王炳石,男,1992年生,本科生,研究方向:医学智能。

陈国华,男,1961年生,博士,广东药学院医药信息工程学院教授,研究方向:医学图像处理,药物信息学。E-mail:ghchen2013@yahoo.com

猜你喜欢

医学影像图像处理标签
医学影像技术在医学影像诊断中的合理运用
《当代医学影像误诊学》出版
《当代医学影像误诊学》正式出版
机器学习在图像处理中的应用
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
模糊图像处理,刑事侦查利器
图像处理技术的实战应用
标签化伤害了谁
基于多进制查询树的多标签识别方法