资源描述
第一章 绪论
计算机图像处理在医学领域的应用越来越广泛,白细胞图像的自动判断就是其中的代表之一。它能有效地减少主观干扰,提高工作效率,减轻医生负担。近些年来,计算机硬件技术和光谱成像技术的飞速发展,使得成功研制开发出小型实用的基于多光谱的白细胞图像自动分类识别系统成为可能。
本文研究的主要目的在于对白细胞多光谱图像分割进行初步的探索研究,为系统中其后的白细胞能够准确地分类识别奠定基础。
本章简要阐述了基于多光谱的白细胞图像分割的应用背景和研究意义,回顾了国内外细胞图像分割和多光谱遥感图像分类的研究发展状况,并简要介绍了本论文的主要工作。
§1.1 概述
§1.1.1 白细胞检验
白细胞的光学显微镜检查是医院临床检验项目之一,特别是对各种血液病的诊断占有极其重要的地位。它的任务是观察或测定血液中的各种白细胞的总数、相对比值、形态等,用于判断有无疾病、疾病种类以及严重程度等,特别是对类似白血病这类血液病诊断具有更加重要的意义。
白细胞分类计数的传统方法是将血液制成涂片,染色后,临床医生在显微镜下用肉眼按照有关标准,如核的形状、细胞浆的量和颜色,细胞浆颗粒的大小和颜色,整个细胞形状、稀薄与细胞间的接触等,来观察和检查这样的细胞标本[1]。然而这项工作十分繁重,工作效率低,容易误判,且人工识别误差随检查人员而异。同时通过观察的细胞数目较少,从统计的角度看,因样本集较小而影响诊断结果的可靠性。
计算机图像处理与分析技术伴随着信息技术的不断进步在最近20年间得到了飞速的发展,已经迅速渗透到人类生活和社会发展的各个方面,这为智能化细胞分析仪代替人工方法提供了基础。因此,借助于现代计算机技术结合临床医生的实践经验,采用图像处理技术对图像进行处理,从而对细胞进行识别,对于医学科研与实践,以及临床诊断方面有着现实意义和非常广阔的前景。
目前已经制成的自动白细胞分析仪主要有两种类型:
一类是用组织化学染色法,通过连续流动的系统,以光电效应的方式分别数出单一细胞,并可同时报告白细胞总数、各类细胞的百分率和绝对值。因为该法不是由细胞形态学特点识别各类白细胞,所以不能目视观察白细胞形态,亦不能保留样本,对感染中毒细胞无法识别。
另一类是原型认定型,其工作原理模仿人“脑眼系统”[2]的智能识别过程,运用计算机图像处理和模式识别技术,将从显微镜与相机或摄像机得到的数字化图像进行自动处理分析和分类。与前一种类型的白细胞分类仪器相比,其主要优势在于:
(1)能获得丰富的关于细胞形态、色彩、纹理等方面的多种信息,可综合运用图像处理及模式识别技术进行细胞分类,可取得高效准确的识别效果;
(2)由于计算机的应用,保留了第一手资料,便于诊断的回顾和疑难病症的会诊,使系统在临床基础研究、病理资料积累等方面具有很大的潜力。
随着计算机技术的发展,第二类方法近些年得到了较大发展。此类方法是目前的研究热点和发展方向。
§1.1.2 细胞图像分割概述
输入图像
图像分割
特征提取
特征选择
分类识别
图1.1 图像识别流程
细胞自动识别和统计系统主要方法是对原始图像进行分割,以提取单个细胞,然后对单个细胞进行分析处理和分类识别。图像分析识别的一般过程如图1.1所示:
细胞图像的分割是细胞自动识别计算机分析的第一步和关键性问题,其分割质量亦即与细胞的吻合程度,将直接影响到特征参数提取的准确性和分类系统的最终识别率。传统细胞图像的分割,就是将血液中的白细胞自动检出,并在除去图像中各种噪声干扰的基础上,将单个白细胞图像划分成背景、细胞浆、细胞核三个区域。白细胞图像的分割包括两个方面的任务:
(1)从一幅血液图像背景中自动检测出待分类识别的单个白细胞区域;
(2)为了计算细胞的特征参数,应将检出后的白细胞中的背景部分清除,并将细胞核与细胞浆分为不同的区域。
§1.1.3 白细胞的分类及特点
白细胞是人体血液的重要组成部分,由核和原形质(细胞浆)两部分组成,为无色、球状有核细胞,根据包含在核与原形质中的颗粒不同,分成颗粒细胞、单核细胞和淋巴细胞。颗粒细胞又根据颗粒的性质不同分为嗜中性粒细胞、嗜酸性粒细胞和嗜碱性粒细胞。中性粒细胞根据核形状又可分为中性杆状核粒细胞和中性分叶核粒细胞。
观察白细胞图像,可以发现该类图像具有下述特点:
(1)显微细胞图像反差小,有些图像由于各种因素产生的噪声多,图像背景不均匀。另外,由于人工涂片和染色的非标准性,常常出现因染色剂过浓或染色时间过久,致使细胞结构模糊不清;
(2)在一个细胞图像采样视野内,除了出现1~2个白细胞外,周围存在一些次要的区域,如大量的成熟红细胞和少量凝血细胞(血小板)等。红细胞无核且呈圆盘状,细胞中央稍淡,直径约为7.5µm,红细胞的分布密度约是白细胞密度的800倍,凝血细胞的胞体小,呈星状,约为红细胞的1/4~2/3,凝血细胞具有粘附性且常成堆出现在图像中。
以下是经过Wright染色后各类细胞的显微图像:
图1.2 经过染色后的白细胞显微细胞图像
§1.2 目前国内外研究现状
由于将光谱成像手段应用到显微细胞图像处理的研究工作才刚刚兴起,目前已公布的关于这方面的论文和相关资料都很少,由于多光谱最初是用于遥感成像中,且在遥感领域,多光谱图像的分割已经取得了非常丰富的研究成果。因此本节从传统细胞图像分割和多光谱图像分割两个方面来阐述研究现状。
§1.2.1 细胞图像分割方法概述
传统的细胞图像分割按对象可以分为灰度图像和彩色图像两类。传统的细胞图像分割方法大多是针对灰度图像进行的,然而由于上一节所阐述的白细胞图像分割中的几个难点,使针对灰度的分割方法无法准确分割出细胞图像的各种成分。
如果把灰度信息看作是一维的话,那么彩色图像包含的信息是三维的,信息量比灰度图像多。所以近年来的细胞分割算法主要针对彩色图像来展开,并取得了一定的成果。
细胞图像分割方法大致可分为三类[3]。
1、基于区域的分割方法
阈值法:是一种简单而有效的图像分割方法,早期的基于直方图的阈值分割方法主要针对灰度图像,实现简单,计算量小,但其无法有效的分辨白细胞图像中的诸多成分,局限性较大。近年来,针对彩色图像,人们选取RGB空间或HSI空间中的某一个通道或者是它们的线性组合来进行阈值分割,使得分割效果有所提高。
文献[4]中则利用RGB中的G通道来区分核和其他区域,根据对血液图像的直方图分析,应用自适应多阈值分割方法完成对白细胞核的提取以及背景的扣除,实现了白细胞的自动检出。对胞浆的分割中,提出基于局部颜色相似性和凸性收敛控制进行区域生长的分割方法,取得较为满意的结果。
文献[5]中将白细胞分割分为三个步骤,第一步实现白细胞的快速定位,针对白细胞核在R通道中灰度值较低的特点,检测出该图像中有无白细胞,如果有,则划定包含白细胞区域的一个矩形。第二步,分析该矩形区域内的亮度直方图,最亮的部分为背景,最暗的则是白细胞核,然后再利用B通道中红细胞成分较亮的特点,找出细胞浆的位置。第三步,通过形态学中的腐蚀和膨胀使轮廓线趋于平滑。
聚类:也是一种常用的分割算法。它指的是根据数据本身的特征将其分至不同类别的过程。输入的图像数据首先进行特征提取(如颜色,纹理等),然后根据这些特征按照一定的准则把图像分成具有特征一致性的区域。
文献[6]中,采用模式识别中的均值聚类算法并结合分裂算法确定细胞核的颜色以及细胞的个数,从而从彩色图像中分割出了细胞核;在确定细胞核的基础上,该文参照阈值分割和数学形态学中的流域分割的原理,提出结合两种分割算法的方案,最终确定每个细胞核所对应的白细胞的区域,成功地分割出单个的白细胞。
2、基于边界的分割方法
基于边界检测分析的分割方法近年来研究很多。Kass[7]提出了活动轮廓模型,在确定初始轮廓的情况下,利用一定的能量表达式,通过将总体能量最小化,达到边界和形状因素之间的平衡。近年来人们把动态规划、神经网络和贪婪算法[8]等应用到了边界优化上,能够比较快速地得到某个准则下的最优边界或局部边界。
文献[9]针对DNA染色法处理后的标本图像,利用彩色空间RGB中R分量直接对细胞图像进行分割,先对图像进行全局二值化,确定细胞的初始轮廓之后再采用活动轮廓模型逼近真实的轮廓。该论文提出的分割方法取得了比较好的效果。
3、基于区域与边界模型的分割方法
区域生长的基本思想是选定若干种子区域或种子像素,将其邻近的像素按某种相似准则归入区域,使得区域逐步增长。与阈值法相比,这种方法除了考虑分割区域的同一性,还考虑了区域的连通性。
区域生长的效果一般由种子区域和相似性准则(或称生长准则)的选择决定。如何使用鲁棒的非参数方法完成选择是近来区域生长算法研究的热点。
J.M.Chassery[10]在80年代后期利用白细胞的局部颜色相似性和形态特征,用区域生长方法对骨髓细胞进行了分割,得到了较好的效果。文献[11]同样利用局部颜色相似性和白细胞的凸性特征,较好地解决了白细胞图像分割问题。
§1.2.2 多光谱图像分割方法概述
多光谱遥感图像分类是模式识别技术在遥感技术领域中的具体应用,是遥感数字图像处理的一个重要内容。多光谱遥感图像分类技术的研究包括特征选择与提取和算法设计两个主要内容。特征选择与特征提取的方法很多,对于多光谱图像分类的特征选择,起初大部分集中在波段选择上;后来针对不同的分类目的,采用各种数学变换来提取一些有用的分类特征;最后光谱波形特征、纹理特征和其它一些变换特征都尝试着用于遥感图像分类。
1、遥感多光谱图像的分类算法概述
遥感影像分类是遥感界最重要的研究领域之一,因为分类是对遥感影像进行进一步分析的基础。根据数学模型的应用,遥感影像分类可分为参数分类和非参数分类。参数分类要求数据按一定的数学模型分布;非参数分类则不要求数据的分布服从一定的数学模型。在实际应用中,遥感影像分类可分监督分类和非监督分类。监督分类和非监督分类的最大区别在于,监督分类要求首先给定类别,而非监督分类则由图像数据本身的统计特征来决定。对于分类算法的研究也百花齐放,下面简单介绍两种常用的分类算法:
(1)最大似然分类法(Maximum Likelihood Classifier-MLC)
基于贝叶斯决策的最大似然分类法[12,13],属于监督、参数分类算法,有着严格的理论基础,对于呈正态分布的数据,判别函数易于建立,有较好的统计特征,其贝叶斯分类错误率最小。在文献[13]中利用非监督分类的结果来估计各类的先验概率。为了突破最大似然法的一次划分模式类的限制,提高分类精度,许多复合算法都以最大似然法为基础构造,Xiuping Jia等[14]提出的渐进二类判别分类器就属于这一类方法。Chulhee Lee等[15],Jayantha Ediriwickrema等[16]也是把最大似然法作为基础,构造了一种多层似然算法,把一次性划分变为多次划分,从而提高分类精度。
(2)神经网络分类法(Neural Network Classifier-NNC)
神经网络分类算法[12,13]具有许多优点,一般属于监督、非参数分类算法。它可以很方便地结合不同类别的特征;不需要训练样本的先验知识,也不需要训练样本的具有正态分布的特征;每一个训练数据具有相同的权,都可以对网络权阵施加同等影响;分类精度较高等等。因此人工神经网络分类方法广泛地应用于遥感图像分类。神经网络最早用于遥感图像分类始于1988年,此后神经网络方法用于遥感图像分类得到了普遍关注[17-20]。BP算法一出现,便受到了广泛地欢迎,也被应用于遥感图像分类[21]。此后又有改进的神经网络模型用于遥感图像分类,如高阶神经网络分类算法[12]和分层神经网络分类算法[12]等。
2、多光谱显微细胞图像的分割算法概述
多光谱显微细胞图像分析与识别是多光谱成像技术在医学细胞疾病诊断领域中的应用,多光谱图像在追求光谱分辨率的同时,也提供了大量的其化学成分分布的信息。不同的白细胞不论是外形还是内部成分有不同程度的差异,这些差异必然会在光谱上有所反映[22]。多光谱成像技术应用于血液细胞图像领域,必然会给我们的识别带来更多的信息,从而能够更有效地解决以往细胞分割、识别中一些问题,提高分割、识别的准确率,同时由于信息量的增大也对细胞分割算法提出了更高的要求,增大了分割的难度。
传统的显微细胞图像分割算法都是针对灰度图像和彩色图像的,如果将灰度图像看成是一维图像数据的话,那么彩色图像就是3维(R、G、B)图像数据。而本文研究的多光谱显微细胞图像的共有33个波段(在光谱400nm~720nm范围内每隔10nm取一个波段),图像数据就是33维的。由于灰度和彩色图像信息量小,分割算法也相对简单,因此多光谱显微细胞图像的分割必须寻找更好的算法。
由于多光谱最初是应用在遥感图像中的,且从上一节中可以看出遥感多光谱图像分类算法已经发展的比较成熟了,所以我们可以借鉴遥感图像分类中的算法。
§1.3 系统概述
细胞图像自动分析系统[23]硬件配置见图1.3。系统以市场上的主流配置微机为主机,配以高倍显微镜、自动控制平台、黑白摄像机、图像采集卡、液晶分光器等组成。
液晶可调滤光器
摄 像 机
显 微 镜
自动控制平台
血液涂片
图像采集卡
计 算 机
图1.3 图像采集示意图
该系统的具体配置是OLYMPUS BX41光学显微镜,致冷型CCD数码摄像机(Pixera Penguim 600CLM),WD-2000液晶可调谐滤光控制器。
其中,液晶分光器是获取多光谱图像的关键部件,它在计算机的控制下,只允许特定波长(间隔10nm)的光通过,滤掉其它的光。自动控制平台可以在X、Y、Z三个方向上自动定位和聚焦,与相应软件模块的配合实现了血液涂片的自动扫描和细胞搜索。
本课题所使用实验样本主要是骨髓细胞涂片,由武汉大学附属中南医院血液科提供。本实验平台的硬件配置为:Intel 2.40GHz处理器,512M sdram内存,操作系统为Microsoft Windows2000。软件开发环境为MS Visual C++ 6.0。
第二章 显微细胞图像的预处理
由于医学显微图像的复杂性,以及采样过程中存在外界干扰,都会影响细胞图像的准确分割,因此在分割前必须对图像进行必要的预处理,以平滑并消除噪声增强目标与背景的差别,消除由于光源不均匀引起的照度变化等。这是一般图像预处理需要完成的任务。
白细胞图像远远没有遥感图像的多样性和复杂性,然而单独采用通常基于灰度图像或彩色图像的分割方法却又难以得到好的分割效果,而通过观察不同显微细胞图像不同成分的光谱曲线,发现背景和其它成分的光谱曲线有明显的区别,所以本文提出了先对图像进行预处理,然后以像素各个波段的灰度值为特征先分类再分割的方法。即先利用彩色图像中一些分割方法对细胞图像进行预处理,同时为了充分利用多光谱图像信息量大的优势,对预处理后的图像采用先分类再分割的方案。多光谱图像由于信息量较大(或者说特征较多),运用此方法可以获得比较好的分割效果。
同时由于多光谱数据量比较大,以像素各个波段的灰度值为特征进行分类,计算量是一个不得不考虑的问题,所以必须通过预处理减少计算量。本章将细胞图像的RGB空间映射到HSI空间,然后通过阈值分割去掉背景和部分红细胞,剩下的部分图像就通过RBFNN和SVM以像素为对象进行分类识别。
§2.1 显微细胞图像的多光谱特征
多光谱成像技术应用在显微细胞图像中,大大增加了图像的信息量,为了充分利用多光谱图像信息量大的优势,本文在对显微细胞图像进行分割前,对图像的多光谱特征进行了实验研究,通过对大量实验样本的光谱分析,可以得到如图2.1所示的多光谱特征结果。图2.1(a)为五类白细胞核的光谱曲线,图2.1(b)为五类白细胞浆的光谱曲线,图2.1(c)为显微细胞图像中4种成分(背景、白细胞核、白细胞浆和红细胞)的光谱曲线。
(红色—嗜中性;绿色—嗜酸性;蓝色—嗜碱性;黄色—淋巴;天蓝色—单核)
(a)各类白细胞核的光谱曲线 (b)各类白细胞浆的光谱曲线
图2.1 显微细胞图像的多光谱特征
(c)细胞图像中各种成分的光谱曲线
从图2.1可以看出,各类白细胞核的光谱曲线相对稳定,而白细胞浆的光谱曲线虽然有一定的起伏变化,但是变化趋势仍是相对集中的;细胞图像中各种成分的光谱曲线层次分明,相差较大,由此可知图像中相同组份的像素具有较一致的光谱特性,而不同组份的像素其光谱特性差别较大。多光谱显微细胞图像的这一特点使得细胞图像能够准确分割成为可能,也是本文提出用模式识别方法以像素各个波段的灰度值为特征先分类再分割方案的基础;同时细胞图像背景的光谱曲线与其它成分相差很大,且变化趋于平坦,这为本章的预处理提供了基础。
§2.2 图像的预处理
由于本文待分割图像是多光谱显微细胞图像,实验对象主要是骨髓细胞图像,每个像素有33个波段,每波段的灰度值用一个字节表示,则每幅520×696大小图像的数据量为520×696×33=11943360字节,而本文的核心算法RBFNN和SVM都是以图像像素各个波段的灰度值为特征先分类再分割,如果不经过一定的预处理,就需把整幅图像中的像素分为4类:白细胞核、白细胞浆、红细胞和背景,且直接将图像的所有像素都进行分类,计算量可想而知,为了提高计算速度必须进行预处理。
在图像采集过程中,原始图像数据中除了33个波段的数据外,还有RGB彩色数据,传统算法中为了解决白细胞显微图像自动识别中的图像分割问题,文献[11]提出了一种在彩色空间内,先采用自动阈值分割技术扣除背景,得到白细胞核区域,然后用色调相似性作为生长准则,以白细胞形状的凸出形态作为收敛准则,序贯分割白细胞浆区域的处理方法。本文的预处理借鉴了该方法。
§2.2.1 从RGB到HSI彩色空间的映射
RGB空间模型属于线性表示系统,可以用三维空间第一象限的一个立方体来表示,如图2.2(a)所示。彩色立方体中的3个角对应于红、绿、蓝3种基色,从立方体的原点(黑色)到白色顶点的主对角线被称为灰度线,线上所有点具有相等的3个分量,产生灰度影调。在此模型中计算的任何颜色都落在RGB彩色立方体内。RGB空间具有比较简单、直观的优点,但是线性表示系统存在一定的缺陷[25],因此提出了非线性色彩表示系统HSI彩色空间模型。
依据人的视觉特性,可用色调(H),饱和度(S)、亮度(I)三参数来描述颜色,任何彩色图像都可用一组HSI特征来表征。根据不同的需要可构成不同的HSI彩色空间模型,图2.2(b)表示HSI圆柱形彩色空间。其中,垂直轴线代表彩色亮度I,离中心轴线的径向距离代表色彩饱和度S,色调(H)由色点矢量绕中心轴旋转的角度表示。
(a)RGB空间模型 (b)HSI空间模型
图2.2 RGB空间和HSI空间模型
HSI色彩表示方法的优点在于:它同人对色彩的感知相一致,且在HSI彩色空间中,人对色差的感知较均匀,因此其图像特征明显,将RGB空间转换为HSI空间后,使信息结构更加紧凑,各个分量的独立性增强,颜色信息丢失少,易于进行分割和目标识别等处理。
RGB空间到HSI空间的变换公式如下[26]:
(2.1)
(2.2)
(2.3)
其中,
(2.4)
§2.2.2 白细胞图像在HSI彩色空间中的特点及预处理
将彩色白细胞图像从RGB空间映射到HSI空间,对白细胞图像在HSI彩色空间大量观察分析发现:
(1)彩色白细胞图像的浆区域基本轮廓是凸的(图2.3(a));
(2)结构知识:红细胞无细胞核,白细胞核嵌入具有连通性的细胞浆区域内(图2.3(a));
(3)彩色白细胞图像背景区域的亮度(I)明显大于其它部分,且分布十分集中(图2.3(b));
(4)各类白细胞图像的饱和度(S)统计直方图呈现明显的双峰分布(图2.4(b)),且细胞核区域的饱和度明显大于其它区域(图2.3(c));
(5)白细胞与部分红细胞区域色调(H),有明显差别,且在各自区域内具有色调一致性(图2.3(d))。
图2.4 白细胞图在HSI空间中各分量的直方图
(c)HSI空间中H分量直方图
考虑到上述特征,通过在HSI彩色空间由亮度I和色调H图像构成的直方图,用阈值分割技术扣除背景和部分红细胞,剩下的白细胞和部分红细胞,用RBFNN和SVM以像素为对象进行分类。
由于HSI空间中背景区域的的亮度(I)明显大于其它部分,且分布十分集中,从I分量直方图2.4(a)中可以很明显地看出,通过计算机可以很容易地得到分割出背景的阈值,求取阈值的方法是:在直方图上进行全局搜索得到最大值对应的灰度值,然后从这个灰度值开始向灰度值减小的方向搜索,直到直方图上的值第一次开始增大时停止搜索,这个点对应的灰度值就是分割出背景来的阈值。
又由于HSI空间中白细胞与大部分红细胞区域色调(H)有明显差别,且在各自区域内具有色调一致性,通过大量的实验发现H分量的直方图中灰度值为128左右附近的值都是零,所以就选择128作为阈值分割出大部分红细胞,与前一步扣除的背景的并集作为将从白细胞图像中除去的区域,对如图2.3(a)的图像经过这样的预处理后的结果如图2.5所示。从图中可以看出经过预处理后背景和大部分红细胞被扣除了,剩下部分红细胞和白细胞,很大程度上为后面的RBFNN和SVM的分类识别减小了计算量。
多光谱显微细胞图像经过RBFNN和SVM以像素为对象进行分类后,形式上就是三值图像,图像中像素的值是:背景、白细胞核和白细胞浆。由于噪声或者采集图像过程的一些其它因素,以及分类识别时样本的选择不当,分类后的图像中难免会有些颗粒和空洞,为了得到较为完整的白细胞核和白细胞浆,必须进行后处理,去除其中的颗粒和空洞。
区域生长是一种根据相似准则,把相似像素组合在一起,并进行标记,形成一个区域的算法。区域生长的一种最简单的方法是从某个像素开始,然后检查它的近邻,判断它们是否有相似性,这个相似性准则可以是灰度级、彩色、组织、梯度或其它特性。本文采用灰度值相同这一区域生长准则,对分类后的三值图像进行了后处理,最后得到了较好的分割效果。
经过后处理的图像就是最后的分割结果,本文对RBFNN和SVM这两种分类算法进行了对比,发现SVM是一种更优的分类识别算法,并在理论上对此进行了一定的分析。
§5.1 区域生长
§5.1.1 原理和步骤
区域生长法作为图像分割的一类算法,充分利用了像素的空间结构关系和灰度特征以及其它特征。区域生长的基本思想[70]是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在区域中。将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。这样一个区域就长成了。
在实际应用区域生长法时需要解决三个问题:
(1)选择或确定一组能正确代表所需区域的种子像素;
(2)确定在生长过程中能将相邻像素包括进来的准则;
(3)制定让生长过程停止的条件或规则。
种子像素的选取常可借助具体问题的特点进行。利用迭代的方法从大到小逐步收缩是一种典型的方法[71,72],它不仅对2-D图像而且对3-D图像也适用。再如在军用红外图像中检测目标时,由于一般情况下目标辐射较大,所以可以选用图中最亮的像素作为种子像素。要是对具体问题没有先验知识,则常可借助生长所用准则对每个像素进行相应计算。如果计算结果呈现聚类的情况则接近聚类重心的像素可取为种子像素。
生长准则的选取不仅依赖于具体问题本身,也和所用图像数据的种类有关。例如当图像是彩色的时候,仅用单色的准则效果会受到影响。另外还需要考虑像素间的连通性和邻近性,否则有时会出现无意义的分割结果。5.1.2小节将介绍几种典型的生长准则和对应的生长过程。
一般生长过程在进行到再没有满足生长准则需要的像素的时候停止。但常用的基于灰度、纹理、彩色的准则大都基于图像中的局部性质,并没有充分考虑生长的“历史”。为增加区域生长的能力常需考虑对分割结果建立一定的模型或辅以一定的先验知识。
§5.1.2 生长准则和过程
区域生长的一个关键是选择合适的生长或相似准则,大部分区域生长准则使用图像的局部性质[73-76]。生长准则可根据不同原则制订,而使用不同的生长准则会影响区域生长的过程。下面介绍三种基本的生长准则和方法。
1、基于区域灰度差
区域生长方法将图像以像素为基本单位来进行操作,基于区域灰度差的方法主要有如下步骤:
(1)对图像进行逐行扫描,找出没有归属的像素;
(2)以该像素为中心检查它的邻域像素,即将邻域中的像素逐个与它比较,如果灰度差小于预先确定的阈值,将它们合并;
(3)以新合并的像素为中心,返回到步骤(2),检查新像素,直到区域不能进一步扩张;
(4)返回到步骤(1),继续扫描直到不能发现没有归属的像素,则结束整个生长过程。
采用上述方法得到的结果对区域生长起点的选择有较大的依赖性。为克服这个问题可采用下面的改进方法:
(1)设灰度差的阈值为零,用上述方法进行区域扩张,使灰度相同像素合并;
(2)求出所有邻接区域之间的平均灰度差,并合并具有最小灰度差的邻接区域;
(3)设定终止准则,通过反复进行上述步骤(2)中的操作将区域依次合并直到终止准则满足为止。
另外,当图像中存在缓慢变化的区域时,上述方法有可能会将不同区域逐步合并而产生错误。为了克服这个问题,可以不用新像素的灰度值去与邻域像素的灰度值比较,而用新像素所在区域的平均值去与各个邻域像素的灰度值进行比较。
对于一个含N个像素的区域R,其均值为
(5.1)
对像素的比较测试可表示为:
(5.2)
其中T为给定的阈值。现考虑两种情况[73,77]:
(1)设区域为均匀的,各像素灰度值为均值m与一个零均值高斯噪声的叠加。当用式(5.2)测试某个像素时,条件不成立的概率为:
(5.3)
这就是误差函数erf(t),当T取3倍方差时,误判概率为1-(99.7%)N。这表明,当考虑灰度均值时,区域内的灰度变化应尽量小。
(2)设区域为非均匀,且由两部分像素构成。这两部分像素在R中所占比例分别为和,灰度值分别为和,则区域均值为。对灰度值为的像素,它与区域均值的差为:
(5.4)
根据式(5.2),可知正确判决的概率为:
(5.5)
这表明,当考虑灰度均值时,不同部分像素间的灰度差距应尽量大。
2、基于区域内灰度分布统计性质
这里考虑以灰度分布相似性作为生长准则来决定区域的合并,其具体实现步骤为:
(1)把图像分成互不重叠的小区域;
(2)比较邻接区域的累积灰度直方图,根据灰度分布的相似性进行区域合并;
(3)设定终止准则,通过反复进行步骤(2)中的操作将各个区域依次合并直到终止准则满足。
这里对灰度分布的相似性常用两种方法检测(设分别为两邻接区域的累积灰度直方图):
(1)Kolmogorov-Smirnov检测:
(5.6)
(2)Smoothed-Difference检测:
(5.7)
如果检测结果小于给定的阈值,即将两区域合并。
对上述两种方法有两点值得说明:
(1)小区域的尺寸对结果可能有较大影响,尺寸太小时检测可靠性降低,尺寸太大时则得到的区域形状不理想,小的目标也可能漏掉;
(2)式(5.7)比式(5.6)在检测直方图相似性方面较优,因为它考虑了所有灰度值。
3、基于区域形状
在决定对区域的合并时也可以利用对目标形状的检测结果,常用的方法有两种:
(1)把图像分割成固定的区域,设两邻接区域的周长分别为和,把两区域共同边界线两侧灰度差小于给定值的那部分长度设为L,如果(为预定阈值)
(5.8)
则合并两区域;
(2)把图像分割成灰度固定的两区域,设两邻接区域的共同边界长度为B,把两区域共同边界线两侧灰度差小于给定值的那部分长度设为L,如果(为预定阈值)
(5.9)
则合并两区域。
上述两种方法的区别是:第一种方法是合并两邻接区域的共同边界中对比度较低部分占整个区域边界份额较大的区域,而第二种方法则是合并两邻接区域的共同边界中对比度较低部分比较多的区域。
§5.2 后处理
后处理的目的是删除经过分类后图像中的颗粒和空洞,以使细胞分割的效果更好。由于这些颗粒和空洞是随机分布在图像中的,所以可以用区域生长的方法先找到这些颗粒和空洞,然后根据其周围的像素的灰度值,使它们跟周围的灰度值一致,以达到删除颗粒和空洞的目的。
在分类的过程中图像实际上有四种类别的像素,背景、白细胞核、白细胞浆和红细胞分别用四种不同的颜色表示,红细胞不是我们要分割出的对象,所以可以将背景与红细胞的颜色合为一种颜色,这样就成为三值图像,图像中灰度的种类就非常少,使用区域生长的方法就更加简单,所以这里就采用基于区域灰度差的生长准则来对整幅图像进行搜索,生长准则为与种子点灰度值相同(灰度差为零),具体算法描述如下:
找到灰度值等于pixelValue1种子点的位置,并将其灰度值赋为pixelValue2;
BOOL bNotEnd = true;
int iPixelCount = 0; //遍历一遍找到的像素个数
int iAreaSize = 1; //总的像素个数
while (bNotEnd)
{
for (int i =0; i < iAreaSize; i ++)
{
取得当前点;
iPixelCount = 0;
if (当前像素点的邻近8个点的灰度值 == pixelValue1)
{
记下邻近点的位置,并将其灰度值赋为pixelValue2;
iAreaSize ++;
iPixelCount ++;
}
if (iPixelCount >= 1)
{
bNotEnd = true;
i --;
}
}
if (iPixelCount == 0)
{
bNotEnd = false;
break;
}
}
区域生长得到的区域可能是白细胞核或白细胞浆,所以必须设定一个阈值,像素个数小于阈值的区域判定为需要删除的颗粒或空洞。以上程序是得到单个区域,要得到整幅图像中的不相邻的区域,必须遍历整个图像,程序中只需在前面加两个for循环语句。通过观察实验中大量物镜100倍率下的骨髓细胞图像,图像中白细胞核和浆覆盖区域的像素个数一般都是大于500,所以在程序中取阈值为500,当然对不同物镜倍率下的细胞图像则需要适当的调整阈值。
§5.3 实验结果与比较
§5.3.1 实验结果
通过区域生长方法对前两章的分类结果进行后处理,实验结果如图5.1所示,从处理后的图像可以看出,区域生长方法能够很好地去掉分类后图像中的颗粒和空洞。经过后处理的图像就是最终多光谱显微细胞图像的分割结果,图中用白色表示背景,蓝色表示白细胞核,绿色表示白细胞浆。更多其它图像的分割图示见附录。
形态学程序:
附录
clear;
close all;
I=imread('cell05.jpg');
f=rgb2gray(I)
BWs=edge(f,'canny',(graythresh(f)*.1));
se1=strel('disk',15);
itop=imtophat(f,se1);
ibot=imbothat(f,se1);
ienhance=imsubtract(imadd(itop,f),ibot);
se2=strel('disk',6);
bw1=imclose(ienhance,se2);
bw2=imopen(bw1,se2);
se90=strel('line',3,90);
se0=strel('line',3,0);
BWsdil=imdilate(BWs,[se90 se0]);
BWdfill=imfill(BWsdil,'holes');
BWnobord=imclearborder(BWdfill,4);
seD=strel('diamond',2);
BWfinal=imerode(BWnobord,seD);
BWfinal=imerode(BWfinal,seD);
BWoutline=bwperim(BWfinal);
Segout=f;
Segout(BWoutline)=255;
figure
subplot(3,3,1),imshow(f),title('原始图像');
subplot(3,3,2),imshow(BWs),title('边缘提取图像');
subplot(3,3,3),imshow(BWsdil),title('膨胀操作');
subplot(3,3,4),imshow(BWdfill),title('填充');
subplot(3,3,5),imshow(BWnobord),title('分割');
subplot(3,3,6),imshow(BWfinal),title('腐蚀操作 ');
subplot(3,3,7),imshow(Segout),title('分割结果');
分水岭算法:
附录
clear;
close all;
rgb=imread('cell07.jpg');
rgb=im2double(rgb);
r=rgb(:,:,1);
g=rgb(:,:,2);
b=rgb(:,:,3);
I=(r+g+b)/3;
tmp1=min(min(r,g),b);
tmp2=r+g+b;
tmp2(tmp2==0)=eps;
S=1-3.*tmp1./tmp2;
tmp1=0.5*((r-g)+(r-b));
tmp2=sqrt((r-g).^2+(r-b).*(g-b));
theta=acos(tmp1./(tmp2+eps));
H=theta;
H(b>g)=2*pi-H(b>g);
H=H/(2*pi);
H(S==0)=0;
hsi=cat(3,H,S,I);
figure,imshow(S);
h=fspecial('sobel');
g=sqrt(imfilter(S,h,'replicate').^2+imfilter(S,h','replicate').^2);
L=watershed(g);
rm=imregionalmin(g);
im=imextendedmin(S,0.0965);
fim=S;
fim(im)=0.5;
Lim=watershed(bwdist(im));
em=Lim==0;
g2=imimposemin(g,im|em);
L2=watershed(g2);
f2=rgb;
f2(L2==0)=1;
figure;
subplot(3,3,1),imshow(rgb);
subplot(3,3,2),imshow(g);
subplot(3,3,3),imshow(L);
subplot(3
展开阅读全文