一、区域生长的原理和步骤
区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。这样一个区域就长成了。
图2-12 给出已知种子点进行区域生长的一个示例。图2-12(a) 给出需要分割的图像,设己知有两个种子像素( 标为深浅不同的灰色方块) ,现要进行区域生长。这里采用的判断准则是: 如果所考虑的像素与种子像素灰度值差的绝对值小于某个阈值 T,则将该像素包括进种子像素所在区域。图 2-12(b) 给出了T=3 时的区域生长结果,整幅图被较好地分成 2 个区域; 图2-12(c) 给出了T =1 时的区域生长结果,有些像素无法判定; 图2-12(d)给出了T
= 6 时的区域生长结果,整幅图都被分在一个区域中了。由此可见阈值的选择是很重要的。
从示例可知,在实际应用区域生长方法时需要解决3个问题:①如何选择一组能正确代表所需要区域的种子像素;②如何确定在生长过程中能将相邻像素包括进来的准则;③如何确定生长终止的条件或规则。
第一个问题通常可以根据具体图像的特点来选取种子像素。例如,在红外图像检测技术中,通常目标的辐射都是比较大,所以可以选择图像中最亮的像素作为种子像素。如果没有图像的先验知识,那么可以借助生长准则对像素进行相应的计算。如果计算结果可以看出聚类的情况,那么可以选择聚类中心作为种子像素。
第二个问题的解决不但依赖具体问题的特征,还与图像的数据类型有关。如果图像是RGB彩色图像,那么如果使用单色准则就会影响分割结果。另外,还需要考虑像素间的连通性,否则有时会出现无意义的分割结果。
一般生长过程在进行到没有满足生长准的像素时停止。但常用的基于灰度、纹理、彩色的准则大都基于图像中的局部性质,并没有充分考虑生长的“历史”。为增加区域生长的能力需考虑一些于尺寸、形状等图像和目标的全局性质有关的准则。在这种情况下常需对分割结果建立一定的模型或辅以一定的先验知识。
二、生长准则和过程
区域生长的一个关键是选择合适的生长或相似准则,大部分区域生长准则使用图像的局部性质。生长准则可根据不同原则制定,而使用不同的生长准则会影响区域生长的过程。下面介绍 3 种基本的生长准则和方法。
(1)、灰度差准则
区域生长方法将图像的像素为基本单位来进行操作,基本的区域灰度差方法主要有如下步骤:
①对图像进行逐步扫描,找出尚没有归属的像素;
②以该像素为中心检查它的邻域像素,将邻域中的像素逐个与它比较,如果灰度差小于预先确定的值,将它们合并;
③以新合并的像素为中心,返回到步骤②,检查新像素的邻域,直到区域能进一步扩张;
④返回到步骤①,继续扫描直到不能发现没有归属的像素,则结束整个生长过程。
采用上述方法得到的结果对区域生长起点的选择有较大依赖性。为克服这个问题可采用下面的改进方法:
①设灰度差的阈值为零,用上述方法进行区域扩张,使灰度相同像素合并;
②求出所有邻接区域之间的平均灰度差,并合并具有最小灰度差的邻接区域;
③设定终止准则,通过反复进行上述步骤②中的操作将区域依次合并直到终止准则满足为止。
另外,当图像中存在缓慢变化的区域时,上述方法有能会将不同区域逐步合并而产生错误。为克服这个问题,可不用新像素的灰度值去与邻域像素灰度值比较,而用新像素所在区域的平均灰度值去与各邻域像素的灰度值进行比较。
对一个含 N 个像素的图像区域 R,其均值为:
对像素是否合并的比较测试表示为:
其中 T 为给定的阈值。
区域生长的过程中,要求图像的同一区域的灰度值变化尽可能小,而不同的区域之间,灰度差尽可能大。下面分两种情况进行讨论:
1) 设区域为均匀的,各像素灰度值为m与一个零均值高斯噪音的叠加。当测试某个像素是否合并时,条件不成立的概率为:
这就是误差概率函数,当 T 取3 倍的方差时,误判概率为 1-99.7%。这表明,当考虑灰度均值时,区域内的灰度变化应尽量小。
2) 设区域为非均匀,且由两部分不同目标的图像像素构成。这两部分像素在 R 中所占比例分别为q1和q2,灰度值分别为m1 和 m2,则区域均值为 q1m1+q2m2。对灰度值为m的像素,它与区域均值的差为:
可知正确的判决概率为:
这表明,当考虑灰度均值时,不同部分像素间的灰度差距应尽量大。
(2)、灰度分布统计准则
这里考虑以灰度分布相似性作为生长准则来决定区域的合并,具体步骤为:
①把图像分成互不重叠的小区域;
②比较邻接区域的累积灰度直方图根据灰度分布的相似性进行区域合并;
③设定终止准则,通过反复进行步骤②中的操作将各个区域依次合并直到终止准则满足。
这里对灰度分布的相似性常用两种方法检测( 设h1(z),h2(z)分别为两邻接区域的累积灰度直方图):
Kolmogorov-Smirnov 检测:
Smoothed-Difference 检测:
如果检测结果小于给定的阈值,即将两区域合并。
采用灰度分布相似合并法生成区域的效果与微区域的大小和阈值的选取关系密切,一般说来微区域太大,会造成因过渡合并而漏分区域:反之,则因合并不足而割断区域。而且,图像的复杂程度,原图像生成状况的不同,对上述参数的选择有很大影响。通常,微区域大小 q 和阈值 T 由特定条件下的区域生成效果确定。
(2)、区域形状准则
在决定对区域的合并时也可以利用对目标形状的检测结果,常用的方法有两种:
①把图像分割成灰度固定的区域,设两邻区域的周长分别为P1和P2,把两区域共同边界线两侧灰度差小于给定值的那部分长度设为 L,如果(T1 ,为预定阈值),则合并两区域;
②把图像分割成灰度固定的区域,设两邻接区域的共同边界长度为 B,把两区域共同边界线两侧灰度差小于给定值的那部分长度设为 L,如果( T2为预定阈值)则合并两区域。
上述两种方法的区别是:第一种方法是合并两邻区域的共同边界中对比度较低部分占整个区域边界份额较大的区域,而第二种方法则是合并两邻接区域的共同边界中对比度较低部分比较多的区域。
三、分裂合并
上面介绍的区域生长方法是先从单个种子像素开始通过不断接纳新像素最后得到整个区域。另一种分割的想法可以是先从整幅图像开始通过不断分裂得到各个区域。实际中常先把图像分成任意大小不断重叠的区域,然后再合并或分裂这些区域以满足分割的要求。
在这类方法中,最常见的方法四叉树分解法。设R代表整个正方形图像区域图所示,P 代表逻辑谓词。从最高层开始,把R 连续地分裂成越来越小的1/4 的正方形子区域Ri ,并且始终使P(Ri) = TRUE。换句话说,如果P(Ri) = FALSE 那么就将图像分为4等分。如此类推,直到 Ri 为单个像素。
如果仅仅允许使用分裂,最后有可能出现相邻的两个区域具有相同的性质但并没有合成一体的情况。为解决这个问题,在每次分裂后允许其后继续分裂或合并。这里合并只合并那些相邻且合并后组成的新区域满足逻辑谓词 P 的区域。总结前面所述的基本分裂合并算法步骤如下:
①对任一个区域,如果P(Ri) = FALSE 就将其分裂成不重叠的4等分;
② 对相邻的两个区域 Ri和Rj 创门也可以大小不同,即不在同一层,如果条件P(Ri u Rj) = TRUE 满足,就将它们合并起来;
③如果进一步的分裂或合并都不可能了,则结束。