医学影像图像处理实践教程
上QQ阅读APP看书,第一时间看更新

第2节 医学影像格式转换和基本处理

一、医学影像格式转换

DICOM既是医学影像格式的标准,也是影像通信的标准。凡是符合DICOM标准的设备均能够作为独立的节点连入PACS网络,与其他网内节点进行信息交换。但是在PACS网络之外,一方面,不同于常见的JPEG、BMP、TIFF等影像格式,真正支持DICOM影像处理的跨平台应用又实用的通用软件并不多,脱离了采集设备和厂商支持的工作站,DICOM影像不被日常使用的图像处理软件识别,这阻碍了影像和相关诊断内容与通用信息系统的信息共享,因此有必要进行格式转换。

另一方面,各医院里并不是所有影像设备都支持DICOM 3.0标准,近年来,医院在采购现代医疗仪器设备时大多考虑要求支持通用标准,但仍有大量的老式影像设备在使用中,它们往往只能输出胶片,或者只有普通的视频输出,或者使用专用的图像格式。在建设PACS的时候往往必须考虑到为了使现有的大量不符合DICOM格式的医学影像设备进入PACS网络,需要使用一个通用的DICOM格式转换工具包,将那些不符合标准的影像结果纳入网络。所以,DICOM格式文件和常见的图像格式之间的转换十分必要。

图2-3为一个成像设备采集到的小腿部影像,通过分析该文件格式了解一下DICOM影像是如何转换为通用的BMP图像格式显示的,因为JPEG等压缩格式图像均可和BMP位图自由转换,不另作示例。

图2-3 DICOM示例影像

(一)读取文件头识别类型

通过DICOM文件格式的学习,我们知道通过读取DICOM文件的文件头里的2字节的前缀“DICM”可以判断该文件是否是DICOM文件。

(二)读取文件头和数据集数据

文件头中还包括其他一些非常有用的信息,如文件的传输格式、生成该文件的应用程序等,并指明在其后所封装的数据集及影像像素集中数据元素的结构;为了加以区分,将文件头数据元素的组标识均定义为0X0002,且结构是低价先存(Little Endian,低位地址存放低字节,区别于Big Endian低位存放高字节)编码,“0002,0010,Transfer Syntax UID=1.2.840.10008.1.2.”指定传输语法,它定义了数据集编码以及影像像素集的压缩方式,是自然未压缩格式(bitmap)而不是压缩图像(JPEG)。

DICOM文件在数据集后部保存着一张医学影像,显示和转换图片格式必须知道图像高、宽,图像的帧数以及每一像素占用的位数等与显示有关的元素值,此类组标识为0X0028,如表2-2所示。

表2-2 DICOM图像部分数据元素

(三)DICOM影像的显示

实现DICOM影像的位图转换有必要简单了解一下BMP图像的基本格式。一般的BMP图像文件由文件头、位图信息、像素矩阵三部分组成。文件头是文件开头的14个字节,其数据结构含有BMP文件的类型标志‘BM’、文件大小和位图起始位置等信息;位图信息文件头之后是必须具备的40字节基本位图信息和可选的不定长(长度为4的倍数)色彩对应表(用于色彩效果渲染,医学影像不应采用),这部分用于说明位图的尺寸、分辨率等信息;像素矩阵记录了图像的每一个像素值,在显示时,操作系统是从图像的左下角开始(从左到右、从下到上)逐行扫描图像,图像的像素矩阵每个点的值都被一一记录下来形成位图显示。

对比DICOM和BMP的图像格式可知,要把DICOM影像转换为BMP图像,首先读取文件头和数据集数据,获取关于图像的宽、高等必须信息;其次,由于DICOM像素的显示顺序是从左到右、从上到下,第一行显示完再显示第二行,这与BMP图像是不同的,转换中DICOM像素矩阵需要进行一次垂直方向上镜像变化,即将DICOM影像中最下排的像素填到BMP图像的最上排。有了数据信息,就可以填充BMP图像文件相关参数,确定图像矩阵的位置。

最后,需要确定BMP像素矩阵的灰度值。由于DICOM医学影像是用12位或16位的灰度等级来显示一个灰度图的,其灰度级别高达212~216,而一般的CRT或LCD显示器只支持8位的灰度等级,并且BMP图像中,当其矩阵像素的红、绿、蓝3个字节的值相等就构成了黑白图像,在显示黑白图像时,这3个字节实质上只包含了一个字节的信息量,因而BMP图像仅包含8位256个灰度等级,事实上256个灰度等级已经满足人眼的辨别极限了。因此,格式转换中必须通过加窗操作实现高灰度等级到低灰度等级的映射。格式变换之前,通过读取DICOM图像的显示窗宽、窗位值(在DICOM设备或软件中,将窗宽、窗位调节到最佳情况),根据窗位确定中心灰度值,低于窗宽的显示为最暗,高于窗宽的显示为最亮,窗宽范围内部的值通过一定的线性或者非线性变换转换为0~255灰度范围内的值。由此得到了BMP图像每一个像素矩阵的值。

二、基本处理

学习了DICOM影像的基本格式和转换,我们应该知道:采用面向对象思想定义标准的DICOM影像基于现代医疗仪器,复合了多种信息对象类、多种服务的图像格式,对于它的基本处理除了包括常见的图像处理操作类型外,还包括信息对象类和各种服务类的实现。下面结合常见的DICOM工具予以介绍。

PIVIEW DICOM软件是MediFace公司的产品,应用于DICOM工作站,支持三维重建,还可以用来测试DICOM通信。PIVIEW不但可以打印图文报告,而且报告格式可以自己编辑,非常方便。

eFilm Workstation软件是一个常用的医学影像浏览和处理工具,目前版本是付费的,同时也是一个完全遵守DICOM 3.0标准集PACS、HIS、RIS于一体的庞大的信息系统。它具备以下基本功能:数据接收、图像处理和测量、图像保存、图像管理、系统参数设置等。这款软件适用于CR、MRI、CT、超声等检查项目,内附有大量典型模板,写报告非常简单,用于各种医学影像图文报告的书写、打印、统计、查询、DICOM影像浏览等。

EZDICOM是一款非常好用的DICOM影像浏览工具,可以进行窗宽、窗位调整,长度测量,可以显示头文件信息,并可以位图方式进行转换输出等。

免费开源的DCMTK工具包是一个执行大部分DICOM标准的库和应用程序的集合,可实现校验、构造和转换DICOM影像文件、处理脱机媒质、通过网络连接传送和接收图像、图像存储和wlmscpfs服务等功能。DCMTK提供完整源码,可在Windows、UNIX、Linux、Sohris等多种平台下编译,并进行二次开发。但是相对而言,对于开发能力要求较高,不适于教学实践。

现在虽然有很多DICOM浏览工具,但是开源的很少,并且付费的正版软件价格昂贵,免费软件的功能则不够完善。

最后并且最重要的是Matlab工具。起初它是一种专门应用于矩阵运算的软件,诞生于20世纪70年代,经过多年的发展,Matlab已演变成可以解决多数科学计算问题的综合性软件,目前已升级到Matlab 7.0版本。它是美国MathWorks公司推出的数值计算和图形处理的数学计算环境,其所带图形图像处理工具箱几乎涵盖了图像处理领域各种常用函数(包括DICOM图像文件的处理函数)。这些函数如果用C语言来实现,均需要几十甚至几百条语句以上。Matlab是功能强大、运算效率很高的数字工具软件,它带有相应的图像处理工具箱和图像处理函数,简化了编程过程,可以十分方便地用于医学图像处理演示和练习。