解决分水岭算法的过分割问题
班级:020751 学号:02075087 姓名:刘恺
摘要 针对基于分水岭变换的分割算法通常存在过分割现象,提出了一种新的分割算法,采用形态学的运算去除噪声及背景像素的影响,搜索区域极大值点,将分割定位于目标图像,从而达到很好的分割效果,方法从消除过分割及区域轮廓定位等方面均具有很好的分割效果。
关检词 图像分割,分水岭变换,数学形态学
Abstract The article is based on watershed algorithm, proposed a method of image segmentation, adopted the morphology arithmetic to eliminate the effect of noise and background pixel, search for the max point in each area, let segmentation orientate as target image, could reach very good segment effect. The method can efficiently eliminate over-segmentation, and hold the position of region contours without evident bias.
Key words image segmentation, watershed transform ,mathematical morphology
1.1 图像分割综述
把图像分解为一些特定的性质相似的部分(区域或对象),并用这些部分对
图像进行分析和描述。一幅图像往往包含许多不同类型的区域,如物体、环境和背景等。图像分析的一个重要方法就是用它们作为基本组成成分对图像进行描述。例如为了在气泡室图片中检出质点碰撞形式并判定其发生位置,就要在图像中分割出气泡的轨迹及其端点。为了从输入的文本中识别出一串字符,首先就要把各个字符从背景和其他字符中分离出来。因此把图像分割为若干子图像,并利用各子图像的特性和它们之间的关系描述图像,对于图像识别和解释、物景分析以及图像的分块处理和存储都有很大的意义。 图像分割基本上是对像素进行分类的过程。例如用某个灰度阈值把图像像素分成“黑”和“白”两类,就可以把黑的对象同白的背景区分开。常用的分割方法有灰度等级阈值法、谱和空间分类法、区域生长法和边缘检测法。 灰度等级阈值法 在图像只有两种组成部分的情况下,图像灰度的直方图常常呈现两个峰值。用两个峰值之间的谷值所对应的灰度作为阈值,把所有像素灰度大于或等于阈值的作为一类,小于阈值的作为另一类是一种最基本的两类分割方法。实际应用时为了改善分类的可靠性,可以利用某些附加的信息(例如已知两类区域的面积之比)使阈值的选择更加合理。在类别更多的情况下,可以采用多级阈值把各类分割开来(例如确定两个阈值,就可以把细胞图像分割为胞核、胞浆和背景三部分)。类别越多,图像直方图的峰值就越不明显,分割就更为困难。
谱和空间分类法 对于彩色和多光谱图像,可以用像素的几种性质(颜色和谱信号)对像素作比较精细的分类。对于黑白图像,用包括像素本身灰度在内的一组局部性质(例如该像素邻域灰级的均值)在多维空间中进行分类。对于一些复杂图像,这种方法比单独的灰度阈值法效果更好。
区域生长法 这是一种从图像中提取区域或实体的序贯分割法。根据灰度、纹理的均匀性、同背景的对比度以及区域、形状、尺寸等准则,把性质大致相同的邻近像素组合在一起以形成分割区域。
边缘检测法 用于获取图像内物体轮廓的分割方法。一般采用曲线拟合、轮廓跟踪或边缘点连接等技术求出物体的边界。此外,若对像素的类别给以某种概率度量或隶属度,则可以对像素反复进行分类,这就成为松弛迭代分割算法。这种算法有较好的效果,在图像分析中已得到广泛应用。
1.2分水岭算法
分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。
对于分水岭变换,目前存在着几种定义,我们这里所采用的定义是基于沉浸的离散图像的分水岭变换(watershed by immersion)。
令f:D是一幅灰度图像,它的最大和最小灰度值为h_max和h_min。定义一个从h_min到h_max的水位h不断递增的递归过程。在这个过程中每个与不同的局部最小相关的汇水盆地都不断扩展,定义X(h)记作在水位h时候汇水盆地的集合的并。在h+1层,一个连通分量T(h+1)或者是一个新的局部最小,或者是一个已经存在的X(h)中的一个盆地的扩展。对于后者,按邻接关系计算高度为h+1的每一个点与各汇水盆地的距离。如果一个点与两个以上的盆地等距离,则它不属于任何盆地,否则它属于与它距离最近的盆地。这样从而产生新的X(h+1)。把在高度h出现的局部最小记作MIN(h)。把Y(h+1,X(h))记作高度为h+1同时属于X(h)的点的集合。
?X(h_min)?{p?D|f(p)?h_min}?T(h_min)??X(h?1)?MIN(h?1)?X(h)?Y(h?1,X(h))
分水岭变换Watershed(f)就是X(h_max)的补集:
Watershed(f)?D\\(h_max)
分水岭变换由于它以下优点被用在图像处理的许多领域:直观,快速并且可
以并行计算,总是产生完整的边界,这样就避免了边界连接的后处理。而且不少研究人员把分水岭嵌入到多尺度框架中。然而,分水岭算法还是有一些致命的缺点,下面列出了最重要的几点。
过度分割。由于大部分图像的梯度图都有许许多多的局部最小,所以分水岭变换的结果是无数的小区域边界,这样的结果毫无意义。通常的解决办法是使用标记的图片来减少局部最小的数量,即使用带标记的分水岭变换。
对噪声的敏感。局部的一些改变会引起分割结果的明显改变,强烈的噪声有时候使得分水岭变换无法找出真正的边界。其中的一个解决办法是使用各项异性的滤波器。
难以准确检测出低对比度的边界。由于对比度低所以使得信噪比高。所以由
于前一个原因,对这种图片分水岭变换仍然无法很好的工作。
1.3解决过分割问题的方法
针对分水岭算法的过分割问题,已经提出了许多有效的解决方法。
利用门限的分水岭算法。当两个汇水盆地即将连通时,首先判断,只有储水量和高度达到一定的阈值才判定为边界,否则把他们融合给与其相邻的最大的盆地。
基于区域合并和分水岭的图像分割方法。根据定义的相似区域合并算法,对分割结果进行处理,合并相似区域来减小过分割。
基于模糊C均值聚类和分水岭的图像分割方法。对分割结果利用模糊C均值聚类的方法进行相似小区域的合并,改善分割结果。
1.4本文提出的方法
在图像中对前景对象和背景对象进行标注区别,再应用分水岭算法会取得较好的分割效果。其中过程用到了许多matlab图像处理工具箱的函数,例如fspecial、imfilter、watershed、label2rgb、imopen、imclose、imreconstruct、imcomplement、imregionalmax、bwareaopen、graythresh和imimposemin函数等。
具体标注过程为:首先对原图像进行形态学开操作或腐蚀后形态学重建,去除图片中的毛刺和小物体;接下来进行形态学关操作或膨胀后形态学重建,目的是填洞补沟,合并小的物体;关操作,然后腐蚀来收缩边缘,计算局部最大值就能得到较好的前景标记;去噪后选取合适的阈值转化为二值图像;为了不是背景标记太靠近目标对象边缘,通过“骨骼化”进行细化,对二值图像的距离进行分水岭变换,进而的到最终结果。
2.流程图
开始 读入图像 开运算 闭运算 前景标记 分水岭变换结束
3.实验结果及分析