摘要 通过对大量DICOM图像的分析和对DICOM标准文书的分析了解了图像的结构组成,同时对BMP图像进行分析得出BMP图像的结构组成,提出进行DICOM图像与BMP图像转换的方法。
关键词 DICOM;BMP;数据元素;像素
中图分类号:TP317.4;TN911.73 文献标识码:A 文章编号:1003-8868(2004)01-0013-03
随着DICOM3.0标准在各种医疗设备中的应用,使各个厂家的数字成像设备之间相互传输交换数字影像成为现实。以此为基础的PACS(图像归档传输系统)可以实现影像设备数据的数字化存储与传输,实现网络化和无胶片化管理,既保持数据的原始性,又调用方便,节省存储空间,节约成本,并可实现远程传输,远程医疗。
DICOM标准对使用者的另一有利之处在于:所有设备都使用这一标准,因此可以有效地利用各种设备的影像资源,并且可以在计算机中处理,而不必去研究每一台设备的图像存储结构。但也有不方便的一点就是,DICOM图像不能被日常使用的通用图像处理软件所识别,因此必须对DICOM图像进行转换,以利于处理。
通用图像格式很多,其中BMP图像是应用最广泛的图像格式之一,并且易于处理,因此选择BMP图像。要实现这种转换,必须对这2种图像的具体结构进行分析。
1 设备及软件
(1)设备:①德国西门子公司PLUS 4螺旋CT;②德国西门子公司Magic View 50(简称MV50)医学图像处理工作站;③韩国Mediface 公司Piview 单机版DICOM图像处理工作站。
(2)软件:①微软公司Windows98画图软件;②X-Ways Software Technology 公司十六进制编辑与分析软件WinHex。
2 方法
从CT传输出不同病人、不同部位的一系列图像到MV50,利用WinHex 打开MV50中DICOM图像文件,结合DICOM标准文书,分析DICOM文件的结构、内容,共同点与不同点。再把图像传输到Piview,结合Piview自带的图像文件和从非DICOM图像转换过来的DICOM文件,分析结构内容,并且与原始的MV50上的DICOM文件比较,掌握关键数据。
各种符合DICOM的设备生产厂家都应该提供该设备的DICOM说明文件(DICOM Conformance Statement),文件中对此设备的DICOM图像文件中的数据元素都有说明,由此可以知道该设备的DICOM文件具有哪些元素和内容。另一方面,用Windows98画图软件手工产生一系列BMP图像文件,用 WinHex打开BMP文件,了解BMP图像文件的结构信息。
3 结果
3.1 DICOM图像文件结构
DICOM图像文件一般由一个文件头和一个DICOM数据集合组成。
3.1.1 DICOM文件头
DICOM文件头(DICOM File Meta Information)包含了标识数据集合的相应信息。文件头的最开始是文件识别信息,由128字节的文件导言组成,可以用于应用协议或特定的操作定义,是为了使在DICOM文件中提供的图像和其他数据更易于被访问处理,如果该导言不表达信息,这128字节应该用十六进制的00来填充。接下来是DICOM前缀,它是一个长度为4字节的字符串“DICM”,可以根据该值来判断一个文件是不是DICOM文件,文件头之后是后面介绍的DICOM数据集合。虽然在DICOM标准的说明中要求包含文件头,但也可以不包含文件头,同样能被DICOM应用软件所识别。当没有文件头时,文件的开始就直接是DICOM数据集合。
3.1.2 DICOM数据集合(Data Set)
DICOM文件不同于其它的图像文件,里面不仅包含图像数据,还包含许多其它和图像有关的信息,如病人姓名,出生日期,检查日期,病人编号,检查部位等等,有简短的字符信息,也有数字信息。为了表达这些信息,DICOM标准定义了大量的数据元素,DICOM的数据集合就是由一些按照需要选取的数据元素按照一定的顺序排列组成。
数据元素主要由4个部分组成:标签(Data Element Tag)、数据描述(VR:Value Representation)、数据长度、数据值体(图1)。
(1)标签是一个4字节的无符号整数,高位字节是组号,低位字节是元素号。DICOM所有数据元素都有一个唯一的标签,每一个标准的标签(Standard Data Elements Tag),即组号为偶数的标签,都在DICOM标准的数据字典中定义;使用者可以定义自己的数据元素(私有标签元素Private Data Elements,组号为奇数),在DICOM标准中对自己定义的数据元素也有详细的规则说明。(2)数据描述VR说明该数据元素中的数据是哪种类型的,由2个字节长的字符串表示,是DICOM标准中默认的字符集,已经存在的VR在DICOM标准中有详细的定义。如“PN”为姓名类型,“AS”为年龄类型,“DA”为日期类型,“FL”表示该数据元素中的数据为浮点型数据。数据描述VR在DICOM文件中是可选的,如果规定为显式传输,必须有VR这一项;隐式传输时必须省略这一项。(3)数据长度,根据不同的VR类型决定(不管是显式传输还是隐式传输)为2个字节、或者4个字节的无符号整数。它指明数据值体的长度(不包括标签、VR、数据本身这3项的长度)。(4)数据值体,长度为偶数字节,包含了该数据元素的内容。DICOM文件中除了文件头之外的数据,都是以数据元素的形式出现的。
3.1.3 具体DICOM 数据
对照DICOM说明文件与具体的DICOM文件结构,知道DICOM元素标签为(0008,0005)后的内容是对该文件的一个简短的描述(Specific Character Set),表示ISO组织的一个记录号,(0008,0008)指明了该图像的类型,(0008,0016)与(0008,0018)是与DICOM文件的传输识别有关的识别码,(0010,0010)是病人姓名,(0010,0020)是医院给病人的一个编号(如“CT# 94800”),(0010,0030)是病人出生日期,(0010,0040)代表性别,“M”代表男,“F”代表女。最后一个(7FE0,0010)存放的就是DICOM图像像素数据,前面是该数据的长度,后面的数据就是具体的图像阵列数据。
另外,DICOM文件按传输方式分为隐式传输和显式传输,隐式传输的DICOM文件,没有VR这一项,要知道文件中元素的数据类型,只有根据标签的组号和元素号,查询该设备的DICOM说明文件,或者查询DICOM标准的数据字典,并且该文件也没有文件头。
显式传输的DICOM文件,前面有128字节,其值为“00”的文件导言,紧接着是DICOM文件识别标志“DICM”,“DICM”后的元素(0002,0000)代表“0002”这一组的长度,具有VR这一项,VR为“UL”,指明其内容为无符号整数;(0002,0001)的VR为“OB”,指明其内容为一种专用于传输的数据类型;(0002,4955)的VR为“UI”,是DICOM文件中用于识别的编码信息。
从以上介绍就可以容易地读取DICOM文件中包括图像数据、文字数据、传输信息等数据。
3.2 BMP图像文件结构
一般的BMP图像文件由文件头、位图信息、像素阵列三部分组成。其中文件头长14字节,位图信息的基本部分长40字节,这前面54字节为固定位置数据,55字节以后的4×N字节为色彩对应表(图2)。
3.2.1 BMP图像文件的文件头
文件头由文件识别标志、文件大小、保留值、图像像素阵列的起始位置组成:
第0、1位,“42 4D”表示ASCII字符串“BM”,是BMP文件识别标志;第2~4 位,文件大小,指明该BMP文件中包括文件头、位图信息、像素阵列在内的所有内容的总字节数;第6~9 位,系统保留备用,值总为0;第A~D 位,是图像阵列的起始位置,图2中为“0036”(低位在前,高位在后)。
3.2.2 BMP图像的位图信息
位图信息由40字节基本位图信息和不定长的(长度为4的倍数)色彩对应表组成。其中基本位图信息是必须的:
第 E~11位,是基本位图信息的长度,其值总为“28”,转换为十进制就是“40”;第12~15位,是像素宽度“200”;第16~19位,是像素高度“200”,由此可知,这是一个十进制“512×512”的图像;第1A、1B位,是图像平面数,一般为“1”;第1C、1D位,是每个像素占的位数,图2中“0018”表示每个像素占十进制的“24”位比特(BIT),即占用3个字节(因为BMP为彩色图像,蓝、绿、红三色各占一个字节,由三色组成一个像素);第1E~21位,指明图像压缩类型,无压缩的为“0” ;第23~25位,是像素阵列大小,其值等于“像素宽×像素高×每个像素占的字节数”,图2中为“200H×200H×3=C0000H”(H表示十六进制);第26~29位是水平分辨率;第2A~2D位是垂直分辨率;第2E~31位是调色板颜色数;第32~35位是重要颜色索引。
色彩对应表:
第36~39位为底色,依次是蓝、绿、红、“0”;后面每4位一组,表示多组前景色,直到由文件头中的图像阵列起始位置所指明的地址偏移量前一位为止。
色彩对应表是可选项,主要用于色彩效果渲染,在医学图像中不应采用,因此图2中基本位图信息之后直接就是图像像素阵列(地址偏移量为“0036”)。
3.2.3 BMP图像的像素阵列
这一部分数据记录了图像的每一个像素值,在每一像素占3字节时,依次分别代表蓝、绿、红,通过组合可以得到16M种颜色组合(图2)。
4 结论
要把DICOM图像转换为BMP图像,首先要读取DICOM图像文件中的参数。通过DICOM说明文件或DICOM标准中的数据字典,查询到存储图像的相关数据,主要有:图像显示矩阵,即图像的宽与高;图像存储位数,即每一个像素占用几个字节,如果图像为标准的12位灰度(黑白)图像,必然占用2个字节;找到标签号为(7FE0,0010)的元素,它指明了图像像素的起始位置。
像素的显示顺序是从左到右,从上到下,第一行显示完再显示第二行,设左上角第一个像素坐标为(1,1),在存储文件中的地址为“A0” ,显示矩阵为宽M、高N,图像显示的时候某一坐标为(X,Y)的像素点在文件中存储的位置为:2×[X+M×(Y-1)-1]+A0 。
有了以上数据,就可以确定BMP图像的相关参数,确定每一个像素在文件中的存储位置。但与DICOM图像中像素的显示顺序不同的是,BMP图像从左下角开始显示,从左到右,从下到上,因此要将DICOM图像中最下排的像素填到BMP图像的最上排。
需要注意的是:BMP图像中,其存储像素的蓝、绿、红3个字节的值相等就构成了黑白图像,因此在显示黑白图像时,这3个字节只包含一个字节的信息量,从而BMP图像只能包含8位256个灰度等级。而DICOM的12位灰度图像可以包含4096(212)个灰度等级。将12位的DICOM图像转换为BMP图像,必须进行变换。
变换利用窗口技术(LUT),变换之前,要先读取DICOM图像中的显示窗宽、窗位值(在DICOM设备或软件中,将窗宽、窗位调节到最佳),根据窗位确定中间值,低于窗宽的显示为最暗,高于窗宽的显示为最亮,窗宽范围内的值通过线性或非线性变换转换为小于256的值。由于人眼的分辨率有限,256个灰度级已完全能满足人眼的辨别极限。
对于8位的黑白图像或彩超等的彩色图像的像素,和BMP的单个像素长度结构一致,只须按坐标位置填入BMP图像中即可。
参考文献
1 王志远,余厚军,石明国.医学图像通讯标准DICOM原理与应用(一).现代医用影像学,2000,9(2):84~87
2 王志远,余厚军,石明国.医学图像通讯标准DICOM原理与应用(二).现代医用影像学,2000,9(3):134~137
3 王志远,余厚军,石明国.医学图像通讯标准DICOM原理与应用(三).现代医用影像学,2000,9(4):177~179
4 林天毅,陈思平,陶笃纯,等. 医学数字图像通讯标准(DICOM)的实现. 中国医学影像技术, 2000, 16(5):802~804
5 孙学峰.BMP图像的组成和应用.电脑开发与应用,2000(7):26~27