You are on page 1of 3

第 25 卷 第 6 期 计 算 机 应 用 研 究 Vol. 25 No.

6
2008 年 6 月 Application Research of Computers Jun. 2008

利 用 M AT LAB 实 现 医 学 图 像 处 理 与 分 析 *
1 1 2 1
高向军 , 田联房 , 王立非 , 毛宗源
( 1. 华南 理工 大学 自 动化科 学与 工程 学院 , 广州 510640; 2. 广州 中医 药大 学 祈福 医院 影像 中心 , 广州 511495 )

摘 要: 介 绍了 在 MATLAB( R2006b) 环境 下, DICOM 医学 图像 格 式 的 阅 读、显示 及 存 储 方 法, 使读 者 能 够 了 解


并熟 悉如 何在 MATLAB 环境 下使 用医 学图 像 处 理 函 数, 而 没 有 必 要 再 借 用其 他 的 图 像 格 式 转 换。 通 过 分 析 这
些函 数, 给出 了判 断 DICOM 格 式的 条件 及 应用 时的 注 意事 项, 最 后 用实 例证 明 了在 MATLAB 环 境 中, 实 现复 杂
医学 图像 处理 和分析 的简 洁性 及高 效性 。
关键 词: MATLAB; 医 学图 像; DICOM 格式 ; level set
中图 分类 号: TP312 文 献标 志码: A 文 章编 号: 1001 - 3695( 2008) 06- 1747- 03

Achieving processing and analysis of medical image by MATLAB


GAO Xiang-jun1 , TIAN Lian-fang1 , WANG Li-fei2 , MAO Zong-yuan1
( 1. College of Automation Science & Engineering, South China University of Technology, Guangzhou 510640, China; 2. Image Center, Clif-
ford Hospital, Guangzhou University of Traditional Chinese Medicine, Guangzhou 511495, China)

Abstract: This paper introduced how to realize the read, display and store of the DICOM format image file using MATLAB
( R2006b) ’s image processing toolbox. By analyzing those functions of the medical image processing in the image processing
toolbox, prosented the condition to judge the DICOM format image file and the warning about using those function. At last, in-
troduced two applications, which verifies it was concise and effective to realize the complex algorithm about the medical image
processing and analysis using the MATLAB software.
Key words: MATLAB; medical image; DICOM; level set

近年来, 许多数字化 医学影 像设备 不断应 用于临 床, 产 生 版本包括了对 DICOM 格式 的阅读、分析 到存 储的 函数。同 时
了大量的医学图像( 如 CT、MRI、PET、SPET 等) 。这些 医学 图 此版本也支持 Analyze 7. 5 和 Interfile 两 种医 学图 像格 式。 其
像具有成像机理多样、数 据结构 复杂、数据量 大等特 点 [ 1] 。而 中, Analyze 7. 5 是由 Mayo Clinic 编写的一种图像文 件格式, 用
实现对医学图像的处理和分析 是进行 放射医 疗诊断 的前提 和 来存储 MRI 数 据; Interfile 格式 用来 存 储核 医学 图 像, 便 于 在
基础, 因此具有相当重要的意义和价值。 不同系统上共 享及 交换。因 此 在 MATLAB( R2006b ) 环 境中,
为使医学图像设备的制造 厂商和 用户在 标准网 络上实 现 可以直接利用 MATLAB 所提供的医学图像处理 函数来实现 医
设备互连, 便利各类型的医学图像的开发和应用, 由美国 放射 学图像的处理和分析, 而不必再关心图像文件的格式、读写、显

学会( ACR) 和国际电气制造商协会 ( NEMA) 联手成立的 数字 示和已有成果的 技术 细节; 可 以结 合 MATLAB 强大 的数 据 处

图像和通信标准委员会, 在众多影像设备制造商及用户的积极 理能力及多种工具箱, 把精 力集中 在新技 术理论 的研究 上, 快

参与下, 制定 了 DICOM ( digital imaging and communications in 速有效地实现医学图像处理和分析。


[ 2]
medicine) 3. 0 标准 。DICOM3. 0 标准 已成 为放 射医 学领 域
1 DICOM 图像的读入及显示
中的一 种 核 心 标 准。目 前 大 多 数 医 疗 成 像 设 备 都 符 合 DI-
[ 3]
COM3. 0 标准 。面对如此巨大的市场, 具有强大数据处 理能 1. 1 DICOM图像文件信息
力的 MATLAB 软件势必要引进对此图像格式 的处理功 能。然 DICOM 文件一般由 DICOM 文件头 和 DICOM 数 据集合 组
而目前却很少见到有关的参考文献, 一些图像处理工作者为了 成。文件头包含标 志 数据 集合 的 相关 信 息。 数据 集 合由 DI-
应用 MATLAB 环境 以 及 调用 各 种 工具 箱 的 功 能, 不 惜 把 DI- COM 数据元素 ( data element) 按一 定 顺序 排列 组 成。DICOM
[ 4, 5]
COM 格式转换成 BMP 格式 。他们做了大 量的工作来 熟悉 数据元素则是 DICOM 文件最基本的构成单元。它由四个部 分
DICOM 格式, 用很大 的精 力编写 阅读 及保 存此 格式 的图 像 软 组成: 标签( tag) 、数据描述 VR( value representation) 、数据 长
件。若是此软件编写不当, 还有可能丢失图像重要信息。其实 度 VL( value length) 和实际数据值 value。而 标签又由组 号( 高
MATLAB 早在引进 Version 3. 0 ( R12 + ) Image Processing Tool- 位 2 Byte) 和元素号( 低位 2 Byte) 两部分组成。
box 时, 就增加 了对 DICOM 格式 的阅读 函数: dicomread( ) 、di- MATLAB 图像处理工具箱提供了获取 DICOM 文件信息的
cominfo( ) 。到 Version 5. 3 ( R2006b) Image Processing Toolbox 函数: dicominfo( ) 。该函数首先判断文件是否为 DICOM 格式,

收 稿日期 : 2007- 05- 21; 修 回日 期: 2007- 08 - 27 基 金 项 目: 国 家 自 然 科 学 基 金 资 助 项 目 ( 30570458 ) ; 广 东 省 自 然 科 学 基 金 资 助 项 目


( 05006530) ; 广 州市番 禺区 科技攻 关项 目( 2005-Z- 55- 1)
作 者 简 介 : 高 向 军 ( 1975- ) , 男, 山 东 临 沂 人, 博 士 研 究 生, 主 要 研 究 方 向 为 医 学 图 像 处 理 及 三 维 可 视 化 ( xjgao75 @ 163 . com) ; 田 联 房
( 1968 - ) , 男, 教授, 博 士, 主要研 究方 向为生 物医 学工程 、机 器人 视觉伺 服控 制、模式识 别、智能 控制; 王立 非( 1963- ) , 男, 副 主 任医 师 , 主 要 研究 方
向为医 学影像 诊断 、介 入放 射治疗 ; 毛 宗源 ( 1936 - ) , 男, 教授, 博 导, 主要研 究方 向为现 代控 制理论 及应用 、人工智 能.
・ 1748・ 计 算 机 应 用 研 究 第 25 卷

满足 以下条 件之一 的即为 DICOM 格 式: a) 头文件 是 132 Byte 如要对一幅索引图像滤波, 首先要把它转换成真彩色图像或灰


且第 129 ~132 Byte 是‘DICM’; b) 检查头文件的第一个数据元 度图像, 直接滤波的结果是毫无意义的。在图像处理工具箱中
素的属性, 数据元素的标签 以组号 0x0002 或 0x0008 开 头。通 有类型转换函数 可以 实 现各 种图 像 类型 之间 的 相互 转换, 如
过该函数可以获取 DICOM 文件的大小、尺寸、窗宽、窗位、数据 rgb2gray( ) 、ind2gray( ) 、im2bw( ) 等。
类型、传输协议、设备描述、获得日期以及病人状况等信息。比 2. 2 图像文件格式转换
如调 用 metadata = dicominfo( ′CT-MONO2-16-ankle. dcm′
); 返 在 MATLAB 中, 改变图像文件格式的方法 是, 先 用阅读 函
回一个结构体。 数将文件读入工作空间; 然后用写入函数以适当的格式保存文
metadata. TransferSyntaxUID = 1. 2. 840. 10008. 1. 2% 传输 协议标 志
件。因此可以方便地实现医学 图像格 式与其 他格式 之间的 相
metadata. RescaleIntercept = -1024 % 尺度 截距
互转换, 以利于医学图 像的传 输和 应用。比 如把 一个 . png 图
metadata. RescaleSlope = 1 % 尺 度斜 率
像转换成 DICOM 格式, 调用格式为
1. 2 DICOM图像的读入 X = imread( ′ ) ; % 将转 换文 件读入 工作空 间
rice. png′
MATLAB 图像处理工具箱提供的 dicomread( ) 函数支持读 info = dicominfo( ′ ) ; % 获取 DICOM 的图 像信息
E: \ctdata\41. dcm′
入多种图像类型的 DICOM 格式。一般来 说, DICOM 格式文 件 st = dicomwrite( X, ′ , info) ; % 转 换 为 DICOM
E: \ctdata \rice. dcm′

的数据元素存储的是经过变换后的图像数据, 笔者可以根据读 格 式, 图像 信息为 指定 的 info

入的图像数据 X 以及图像的信息 metadata 得到相应的图像 CT 此时 结 构 st. SuspectAttribute = { ′( 0028, 0100 ) ′′


( 0028,
值。转 换 公 式 为: Hu = a. * X + b。 其 中: a 为 0101) ′′
( 0028, 0102) ′
} , 说明数据类型与指定的图像信息不一
metadata. RescaleSlope; b 为 metadata. RescaleIntercept。 致, 故此只要转换成对应的数 据类型 即可。此外 dicomwrite( )

1. 3 DICOM图像的显示 还提供了多个参数供选择。可指定的参数如表 1 所示。


表1 dicomwrite( ) 函 数可变 参数 列表
目前的 DICOM 图像一般都是 16 位, 即其显示范围可 以达
选项 描述
到 65 536, 然而屏幕显示范围只有 0 ~255, 故需要定 义像素 的 Endian 文 件 的 字 节 存 储 方 式 , Big, or Little( de fault)

CT 值到屏幕像素对应的灰度值 ( 0 ~55 ) 的映射。常 用加窗 显 VR 数 据 类 型 是 否 表 明 : Explicit, or Implic it( default)

图 像 的 压 缩 类 型 : JPEG lo ssless, JPEG lo ssy, RLE, or None


示的线性映射来实现。所谓加窗显示是指通过限定一个窗口, Compre ssionMode
( default)
将窗口区域的图像数据线性地 转换到 显示器 的最大 显示范 围 数 据 传 输 协 议 UID, 若 是 指 定 此 选 项 , 则 dic omwrite 自 动 填
内, 高于或低于窗口上下限的图像数据则分别设置为最高或最 TransferSyntax 写 选 项 Endian 、VR 和 Compre ssionMode, 而 忽 略 用 户 输 入
的值
低的显示值 [ 2] 。这样 通 过动 态地 调 节窗 口 的窗 宽和 窗 位, 就 Dic tionary 包 含 私 有 数 据 元 素 的 DICOM 数 据 字 典
可以观察到医学图像的全部信息。 W ritePrivate 判 断 是 否 要 写 入 私 有 数 据 元 素 , true or false ( default)
数 据 写 入 的 方 式 , Create ( default ) 验 证 输 入 值 并 补 充 缺 少
MATLAB 图像处理工具箱 提供了 多种动 态调整 图像对 比
Cre ateMode 的 值 , Co py 复 制 输 入 值 , 不 填 充 缺 少 的 值 , 此 时 一 定 要 确
度和亮度的函数。通常用以下两种函数做图像的显示和分析: 保 元 数 据 来 自 同 一 个 DICOM 模 型 和 IOD

a) imshow( ) 函数, 该函数自 动设置 图像窗 口、坐 标轴和 图


3 实例分析
像属性。可以设 定 预显 示 的 上下 限, 也 可 以 调用 函 数 imcon-
trast( ) 生成一个 adjust contrast tool, 它 可以可 视地调 整当前 灰
3. 1 删除文本
度图像的对比度和亮度。
本示例演示 DICOM 图像的 阅读及 写入函 数, 同时 演示 如
b) imtool( ) 函数。该函数提供了一个 显示图像及实现常用
何进行简单的图像处理操 作。 一般文 本在图 像中对 应白色 像
图像处理任务的集成环境, 它逐渐替代了函数 imview( ) 。该函
素, 即为最大像素值。只要将所有最大像素值设置成最小像素
数几乎支持任何数据类型的图像, 它不仅拥有 imshow( ) 函数的
值即可删除文本( 图 2) 。
功能, 而且可打开其他几个有助于显示及分析的可视工具, 如像
素区域工具、图像信息工具和对比度调节工具。根据分 析图像
的需要, 可以通过调节显示范围或滑动鼠标, 自由的调节对比度
来显示图像的不同组织。图像显示效果如图 1 所示。

渊a) 删除前 渊b) 删除后


图圆 文本删除

本实例代码如下:
I = dicomread( ′CT-MONO2-16-ankle. dcm′) ; % 读 入 DICOM 文件
(a) 皮肤组织 (b) 骨骼组织
imshow( I, ′ , [ ] ) % 如图 2
DisplayRange′
图 员 图像显示效果
info = dicominfo( ′ ) ; % 读入图像文件信息
CT-MONO2-16-ankle. dcm′
siUID = info. SeriesInstanceUID; % 获取 图像 的序列 实例 UID
2 图像格式转换 Imodified = I; % 定 义一个 同维的 数据 矩阵
maxv = max( I( : ) ) ;

2. 1 图像类型转换 minv = min( I( : ) ) ;


Imodified( Imodified = = maxv) = minv;
MATLAB 图像处理工 具 箱支 持四 种 图 像类 型, 分 别 为 真 imshow( Imodified) % 显 示处 理过的 图像
彩色 图 像 ( RGB) 、索 引 色 图 像、灰 度 图 像 ( I) 和 二 值 图 像 uid = dicomuid; % 产生 一个 新的 UID
[ 6]
( BW) 。许多图 像处 理工 作对 图像 类型 有特 定的 要 求。比 info. SeriesInstanceUID = uid;
第6期 高向 军, 等 : 利 用 MATLAB 实 现医 学图 像处 理与 分析 ・ 1749・

dicomwrite( Imodified, ′
ankle_newseries. dcm′
, info) ; 在 MATLAB 中, 笔者 实现算 法如下: a) 读入图 像, 预定 义
3. 2 Level s et 图像分割 初始轮廓, 如图 3( a) 所示; b) 定义 离散化 水平集 函数; c) 曲 线

在医学图像分割研究中, 基于 level set 技 术的活动轮 廓模 演化, 递推过程; d) 求解 演化 后的 零 水平 集, 即 为分 割图 像 的

型正引人 注 目。本 实 例 在 MATLAB 环 境 中, 实 现 了 Chan 和 边缘, 如图 3( b) 所示。


[ 7]
Vese 提出的无梯度的活动轮廓模型, 并应用在医学图像分割
4 结束语
之中。
C-V 分割方法的基本 原理 如下: 设 定 义域 为 Ω的图 像 u0 实践 证明, MATLAB 软 件功能 强大、数据计 算能力 突出、
被闭合边界 C 划 分为 目标 O ( C 的内 部) 和背 景 B ( C 的 外 语言简洁易读。使用图像工具箱中的医学图像处理函数, 可以
部) 两个同质区域。两个区域的平均灰度分别为 c1 和 c2 , 此时 方便快捷地实现医学图像 的读写 及简单 处理功 能。 本文用 实
能量函数可看做为外部能量和内部能量之和, 即 例证明了在 MATLAB 环境中可以方 便、快速、有效地 实现复 杂
E( c 1 , c2 , C) = E insi de( C) + Eoutside( C) = 医学图像处理算法。同时 MATLAB 工具 箱涉及的专 业领域 广
2
μ1 ∫∫insi de( C) ( u0 - c1 ) dxdy + 泛且功能强大。由于工具 箱具 有可 靠性和 开放 性, 可 以方 便
2
μ2 ∫∫outside( C) ( u0 - c2 ) dxdy + γ|C| 地直接加以使用, 也可 以将自 己的 代码 加到 工具 箱中 以改 进
函数功能。因此, 在 MATLAB( R2006b) 环 境下, 实 现医学图 像
的处理和分析具有很大的应用优势和价值。
参考文献:
[ 1] 田捷, 包 尚联, 周明 全 . 医 学影像 处理 与分析 [ M] . 北京: 电子 工
业出版 社, 2003.
渊b) 分割结果 [ 2] 张尤赛 , 陈 福民 . DICOM 医 学图像 窗口 变换的 加速算 法[ J] . 计
渊a) 初始图像
图猿 蕴evel set 分割结果 算机工 程与 应用, 2003, 39 ( 13) : 218- 220 .
[ 3] 王立功 , 刘 伟强, 于甬 华, 等. DICOM 医 学 图像 文 件格 式 解析 与
当闭合边界 C 处 于 两个 同质 区 域的 边 界时, 能 量达 到 最
应用研 究[ J] . 计算机 工程 与应用 , 2006, 42 ( 29) : 210- 212 , 225.
小。为了解决曲线 的拓 扑 变化 问 题, C-V 分 割 法采 用了 水 平 [ 4] 曾筝, 董 芳华, 陈晓 , 等 . 利 用 MATLAB 实 现 CT 断 层 图 像 的三 维
集方法, 将闭合边界 C 嵌入 高一维的曲面 中, 根据 初始闭合 重建[ J] . CT 理论 与应用 研究, 2004, 13 ( 2 ) : 24- 29.
曲线 c0 构造一个内正外负的符号距离水平集函数 。这样就 [ 5] 任忠宝 , 李佳 . 基 于 MATLAB 的 颅 面三 维 重构 技 术 [ J] . 计算 机
0
工程, 2005, 31 ( 24) : 191- 193.
将关于闭合曲 线 C 的 能量 函 数 转换 为 关 于曲 面 的能量函
[ 6] 王家文 , 李 迎军 . MATLAB 7. 0 图 形 图 像处 理 [ M] . 北 京: 国 防
数, 再通过变分技术可以得到关于曲面的偏微分方程模型 , 即 工业出 版社 , 2006 .
/ t = |è |[ γdiv ( è /|è |) - μ1 ( u0 - c 1 ) 2
+ μ2 ( u0 - c 2 ) 2 ] 通 [ 7] CHAN T, VESE L. Active contours without edges [ J] . IEE E Tra ns
过求曲面的零水平集就可以得到 C 的位置。 Image P rocess, 2001, 10 ( 2 ) : 266 - 277.

( 上 接第 1740 页 ) 相 比, 本文 算法虽 然计 算量 有所 增大, 但 能 acomposite method[ J] . P attern Recogn ition , 1989 , 22 ( 4 ) : 381-

正确区分质量中等区域和质量较差的区域, 并将背景区域和质 385.


[ 4] MEHTRE B M. Fingerprint image analysis for automatic identification
量较差、后继算法无法恢 复的噪 声区域 分割掉, 保留 质量中 等
[ J] . M achine Vision and A pplications, 1993 , 6( 2 - 3) : 124- 139.
区域, 使后续算法的处理区域更精确。
[ 5] 苏彦华 . Visual C + + 数 字图 像识 别 技 术典 型 案 例 [ M] . 北 京: 人

4 结束语 民邮电 出版 社, 2004.


[ 6] 耿茵茵 , 唐良瑞 . 指 纹 图像 分 级 分 割 算法 [ J] . 北 方 工业 大 学 学
本文提出了一种改进的基 于指纹 灰度特 性的指 纹图像 分 报, 2000, 12 ( 3) : 21- 26.
割算法, 克服了传统自适应阈值分割算法在指纹与背景交接区 [ 7] 甘树坤 , 欧宗瑛 , 魏 鸿磊 . 基 于灰度 特性 的指纹 图像 分割算 法[ J] .

域, 以及指纹内部脊线太淡或脊线粘连的区域分割不准及分割 吉林化 工学 院学报 , 2006 , 23 ( 1) : 68 -71.

前景边界的方块效应问题, 适用 于更多 类型的 指纹图 像, 且 分 [ 8] ROSENFILD A, KAK A C. Digital image processing [ M] . New

割比较精确。实验结果表明, 该 算法的 分割效 果很好, 对前 景 York: Academic Press, 1976.


[ 9] GONAZALES R C, WOODS R E. Digital image processing [ M] .
区和背景区的分割更加灵活准确, 有效降低了指纹图像噪声的
Reading MA: Addison-Wesley, 1992.
影响, 它不仅能分割出指 纹质量 较好的 图像, 也能有 效地分 割
[ 11] 田 捷, 杨鑫 . 生物特 征识 别技 术理 论 与应 用 [ M] . 北 京: 电子 工
噪声干扰较大的指纹图像, 经过 分割后 的图像 指纹纹 线清晰、
业出版 社, 2005.
流畅, 具有较强的适应性和很高的实用价值。目前该算法已被
[ 10] 吴一金, 朱兆达. 图像处理中阈值选取方法 30 年( 1962—1992) 的进展
应用到成熟的指纹识别算法中。
( 1, 2) [ J] . 数据采集与处理, 1993, 8( 3) : 193- 201; ( 4) : 268- 278.
参考文献: [ 12 ] BAZEN A M, GEREZ S H. Segmentation of fingerprint images[ C] / /
[ 1] 陆颍 . 指纹自 动识 别原理 与方 法综述 [ J] . 工 程数 学 学报 , 2004, Proc of the 12th Annual Workshop on Circuits Systems and Signal
21 ( 6) : 1003- 1010. Processing. Netherland: [ s. n. ] , 2001: 276- 280 .
[ 2] ZHANG Jian-wei, LU Heng-li. Study on segment algorithm in automa- [ 13] 冯星 奎, 颜祖 泉, 肖 兴 明, 等. 指 纹 图 像 合 成 分割 法 [ J] . 计 算 机
tic fingerprint identification [ J ] . M icrocompute r A pplicat ions, 应用研 究, 2000, 17 ( 1) : 76- 77.
1999, 15 ( 12) : 20- 22. [ 14] 韩思 奇, 王蕾 . 图 像 分 割的 阈 值 法 综 述 [ J] . 系统 工 程 与 电 子 技
[ 3] MEHTRE B M, CHATTER J B. Segmentation of fingerprint images: 术, 2002 , 24 ( 6) : 91 -94.

You might also like