图像分割处理是将图像划分成互不相交区域的过程, 其中区域是一个所有像素都有相邻和相接触的像素集合[1]。目前, 医学图像分割的研究多数是针对MRI和CT图像的, 二维图像发展至今, 提出许多种方法, 整体而言上可以分为半自动分割和自动分割[2]。长期以来影像检查一直是临床上检查、诊断肿瘤性病变的主要工具, 也是测量实体肿瘤体积大小的主要手段, 在实体肿瘤的动态观察中具有重要的地位。我们注意到, 常用的实体肿瘤大小的测量有两个标准, 即WHO或RE CIST[3], 且这些测量的前提假设是肿瘤在三维形态上是球形的, 但是肿瘤在各个方向上的生长是不一致的, 其性状可能是椭圆形、分叶形还有极不规则形等[4, 5], 显然该结果不能反应实体肿瘤的真实大小, 因此传统方法的测量是相当不精确的。有关专家曾经指出, 临床治疗成果的偏差, 有5%~10%是因为测量肿瘤大小的误差造成的[6]。因此精确的求得肿瘤的体积, 对于临床而言意义非常重大, 笔者用ImageJ对肺部CT图片进行了处理, 并在此基础上计算了肿瘤的体积, 精度优于以上两种标准。
1 基于开源软件ImageJ的肿瘤CT截面的测量 1.1 开源软件ImageJ的简单介绍ImageJ软件是美国国家健康协会的WayneRasband用Java语言开发的免费的图像处理和分析平台[7]。ImageJ具备多种图像处理和分析的功能, 支持插件技术, 开放源代码, 又得益于Java的跨平台移植性好的优势, 可以运行在Linux、MachineOS和Windows等平台上。ImageJ通过Java插件被设计为开放体系结构的, 用户可以安装图像分析、处理方面插件, 这些插件都能够使用内置的编辑器和编译器, 适宜的运用插件可以解决多数图像处理的问题。
很多现有的图像处理软件往往因为使用费用、缺少适应性、或特殊的软硬件需求, 尤其是程序包不能直接处理医学图像中DICOM格式的图像, 在应用上受到限制。在这些方面, ImageJ则显示了独特的优势。基于以上原因, 我们选择了这款软件作为研究图像处理的重要软件工具, 并根据图像处理的结果, 计算实体肿瘤体积。本文所用ImageJ软件为1.41版本。[1]
1.2 肿瘤图像的分割与面积计算在医学图像的处理上, 肿瘤图像的分割相对比较困难, 原因在于:①多数恶性肿瘤呈浸润性生长, 边界较模糊, 较难区分; ②CT/MRI图像中肿瘤组织与周边正常组织的灰度值相似, 仅考虑灰度信息无法准确提取肿瘤。
由于肿瘤可以出现在身体的任意部位, 形状也不规则, 肿瘤邻近组织解剖结构复杂, 通常导致采用单一的分割方法无法对肿瘤进行准确分割。我们采用交互式图像分割, 将几种图像分割方法联合使用, 并通过对图像分割过程进行干预和控制, 使人和计算机协同完成图像的分割。
我们以肺部肿瘤为例, 分析肿瘤与胸壁无粘连和有粘连两种情况下的图像分割方法。
1.2.1 无粘连肿瘤图像的处理与面积计算对于无粘连的肿瘤, 因其与肺实质密度对比较大, 通过简单的阈值处理方法即可完成图像的分割, 然后通过边缘提取后计算肿瘤区域面积。主要过程分为四步(如图 1):
二值化处理→形态学处理→边缘提取→面积计算。
我们利用ImageJ的自动选取阈值方法实现图像二值化, 将图象分割为目标和背景。其实现是通过一个自动选取阈值函数, 该函数取一检验阈值并计算所有大于阈值象素的平均值和所有小于阈值象素的平均值, 再计算二者的平均, 增大阈值重复上面的操作, 直到所得阈值大于复合平均[8], 即:
threshold=(average background+average objects)/2。
我们通过调用imageProcesse类中的getAuto Threshold()函数来实现这一功能。对图片进行形态滤波, 得到平滑肿瘤区域。在计算面积时, ImageJ通过查找独立边缘对整个图像肿瘤黑色区域进行分析统计, 将每个独立的区域按顺序编号, 描出轮廓, 并依次计算其所占的像素面积。由于二值化后的图像可能有许多碎片区域, 为提高计算效率, 我们设立门限, 使程序对像素值小于某个值(如100 pixels)的碎片区域不进行分析计算。程序实验结果如图 1中(d)和(e)所示, 肿瘤区域被自动编号为2, 计算出的面积为675 Pixels。我们将整个图像处理过程编写成宏命令如下:
Macro"无粘连肿瘤的分割与面积计算" {run("Make Bina ry"); run(" Erode"); run(" Dilate"); run(" Analyze Particles...", "size=100 circularity=0.00 -1.00 show=Outlines displayrecord"); }
1.2.2 局部粘连肿瘤的图像分割与面积计算 1.2.2.1 简单阈值分割方法的局限对于没有发生粘连的肺部肿瘤, 一般通过阈值分割算法, 都可以获得理想的肿瘤边界。但实际上多数的肺部肿瘤或多或少都与胸壁、纵隔有粘连(如图 2a), 将图像进行二值化处理, 结果见(图 2b), 肿瘤并未实现分割, 肿瘤边界与胸膜任有粘连。这样ImageJ是无法实现对肿瘤体积的正确计算的。理论上, 我们可以直接通过手工画定肿瘤边界, 使ImageJ对给定边界内的黑色区域进行面积统计。但手工分割耗时, 而且多次重复操作所得数据结果的可重复性差, 当需要处理的图像的数量很多时, 手工的方法并不可取。
针对肿瘤发生部分粘连的情况, 我们采用了一种新的分割算法:分水岭(Wa tershed)算法, 它能有效地检测出粘连或重叠的边缘。分水岭分割法是ImageJ软件中一种自动分割粘连颗粒的命令。其原理为:首先计算欧几里德距离图(EDM, 如图 3)中最后被腐蚀的点集(UEPs), 这些点在欧几里德距离图中表现为峰值或局部最大点, 然后将每个UEP进行膨胀运算, 直至粘连处与另一个正在计算的UEP的区域边缘相接触为止[9]。
对于粘连性肿瘤, 分水岭算法能有效地检测出粘连或重叠的边缘。对图 2中二次膨胀后的图像进行Watershed分割操作, 效果如图 4所示, 可见粘连部分被明显的断开。然后利用ImageJ对图像进行边缘检测并计算得到肿瘤区域面积, 如图 5所示, 肿瘤面积为628(Pixels)。分水岭分割法分离重叠不是太严重的平滑凸的粘连效果较好。
上面得到的测量结果是在经过腐蚀和膨胀的基础上再行Watershed分割而得到的, 考虑到在多种分割算法交互使用时, 各算法先后使用顺序不同可能会造成计算结果的不同。直接对原二值化后的图像进行Watershed分割, 然后分别作一次腐蚀和一次膨胀操作, 通过面积计算得到肿瘤面积为647 (pix els)。对比前面所测结果(628 pixels), 前者数值偏低, 考虑是因为前者多次做形态学处理, 造成过度分割, 因此采用后者的算法顺序对肿瘤图像进行处理较逼近真实值, 即:
二值化→分水岭分割→形态滤波→提取边缘→面积计算
通过宏语言实现自动化操作:
Macro" lung-tumor2[] " {run(" Make Binary"); run(" Watershed"); run(" Erode"); run(" Dilate"); run(" Analyze Parti cles...", " size=100 circularity=0.00 -1.00 show=Outlines display record"); }
此外, 通过利用栈技术能使程序对同一组CT图像进行批处理, 再结合宏语言的调用, 使整个过程快速而自动化, 提高效率。
需指出的是, 肿瘤图像中, 并不是所有断层的肿瘤边界像上面所述的情况那样无粘连或只有局部粘连, 有时肿瘤密度与周边组织相近而导致边界不明显, 或者肿瘤与周边大部分粘合导致分割困难。肿瘤图像的分割一直是医学图像处理的难点, 对于一些复杂的肿瘤图像的分割还缺乏普遍适用的算法。在复杂肿瘤图像的分割与测量上ImageJ也存在一定的瓶颈, 这有待研究人员对软件进行进一步的二次开发和完善。
2 肿瘤体积的估算在进行CT图像肿瘤病灶区的面积测量前, 需要确定图像的缩放比例, 将图像面积换算成实际面积。我们所获得的CT图像是512 ×512像素的图片, 设CT视野实际孔径为L, 占图像中的像素长度K, 则每个像素所表示的实际长度值为R=
累积法求肿瘤的体积原理是:先求出各层被勾画出的肿瘤区域的面积, 把每层的肿瘤按照薄片来考虑, 则每一层的肿瘤面积与层厚之积的总和便是肿瘤的体积, 方程式如下:
式中:V-体积, Sj-第j层肿瘤面积, d-层厚。
笔者委托附属医院影像科工作人员挑选了1例较为典型的被诊断为右上肺中央型肺癌病例, 将其放疗后第二次复查的影像资料作为肿瘤体积计算的研究对象, 肿瘤边界尚清晰, 扫描层厚3mm。选取13层含原发灶肿瘤区域的图片, 分别以1到13标记各层。
将CT影像图片, 依次用ImagJ处理后测得各个病灶区面积, 计算薄层的体积, 得到数据如下表 1。
将上述体积累加后得到肿瘤的体积21.58cm3, 累加法近似于积分原理, 误差取决于扫描间隔大小, 由于CT扫描层间隔为3毫米, 所产生的误差较少。
虽然可以用较为复杂插值方法或是函数逼近来计算体积, 由于计算繁杂, 而且对于提高数据的准确性也未见明显益处, 目前应用也较少。
累加方法相对比临床测量肿瘤体积WHO或RECIST较精确, 临床TPS虽然能够的计算肿瘤体积, 但是其工作量较大外, 所得结果并不精确。另一不足之处是它主要用作放疗计划, 软件只安装于TPS系统一台计算机上终端上, 可移植性差。
3 分析和总结对于有粘连的肿瘤图像, 采用分水岭算法分割, 可取得较好的效果。在处理肿瘤图像的基础上, 基于累加原理估算肿瘤体积, 相对于临床WHO或RECIST方法对肿瘤体积大小的估算, 它有较高的精确性, 而且实用性突出。
ImageJ软件作为一款功能比较强大的生物医学图像处理软件, 图像分析准确迅速, 其程序插件的可扩展性, 软件功能具有进一步开发的潜力。ImageJ可以脱离临床, 单独地用于对肿瘤体积的计算, 具备时间和空间上的便利性, 能较精确计算出肿瘤体积。而在计算肿瘤体积方面, 可通过植入提高图像分析能力的java程序插件来进一步提高精确度。所以, 在进行相关的基础或临床研究时, ImageJ可以作为肿瘤体积计算的较为适用的工具, 笔者仅仅对于肺部肿瘤进行了分析, ImageJ也可以对其他实体肿瘤做分析处理, 希望能对于其他类似工作有所借鉴。
然而, 和其他软件一样, ImageJ也依然存在一些不足之处。肿瘤与周围组织边界不清晰给ImageJ的自动甄别带来困难, 所以还需要人为地分析判断和干预来尽可能正确地勾画出肿瘤的边界, 在处理重叠图像方面ImageJ也还有很大开拓空间, 通过编写插件使其在肿瘤图像的测量应用中达到更好的效果。
[1] |
冈萨需斯, 伍兹. 数字图像处理[M]. 北京: 电子工业出版社, 1997: 306-420.
|
[2] |
GUNN S.R., NIXON M.S.. A robust snake implementation; a dual active contour[M]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997, 19(1): 63-68.
|
[3] |
MAZZARA GLORIA P, VELTUIZEN ROBERT P, PEARLMAN JAMES L. Brain tumor target volume determination for radiation treatment planning through automated MRI Segmentation[J]. International Journal of Radiation Oncology Biology Physic, 59(1): 300-312. |
[4] |
刘瑛, 吴宁. CT三维体积测量技术在孤立性肺结节诊断中的初步应用[J]. 医学影像学杂志, 2006(1): 88-90. DOI:10.3969/j.issn.1006-9011.2006.01.028 |
[5] |
李建南, 姚秀忠, 陈世勇, 等. 多层螺旋CT三维体积测量法对肺内孤立性小结节的诊断进展[J]. 中国介入影像与治疗学, 2005(6): 470-473. DOI:10.3969/j.issn.1672-8475.2005.06.016 |
[6] |
DUFFAUD F, THERASSE P. New guidelines to evaluate the response to treatment in solid tumors[J]. Bulletin du Cancer, 2000, 12(12): 881-886. |
[7] |
王银改, 王清改, 翟素平. ImageJ软件辅助分析在网织红细胞计数中的应用[J]. 临床检验杂志, 2005(3): 210-211. |
[8] |
宋玉丹, 容幸福, 秦志钰. 利用Imagej提取目标物平面图像外轮廓的方法[J]. 中国高新技术企业, 2008(1): 104-114. DOI:10.3969/j.issn.1009-2374.2008.01.064 |
[9] |