区域生长算法是一种影像分割技术。基本思想将以一定判别依据,将具有相似准则的像素合并起来构成区域。主要步骤是对每个需要分割的区域找出一个种子像素作为生长起点(通俗一点就是找一个像素来作为参考,用于判断其他像素与参考像素之间是否具有联系),然后根据一定的判别准则,将种子像素周围相似的像素进行判别,相似性较高的像素进行合并,如此就像种子一样发芽生长。
种子区域生长(region seeds growing, RSG)算法在实践中关键的问题是种子的选取和相似区域判定准则的确定。种子的选择可以人工选择,也可以通过一些方法自动选取;灰度图的判定准则一般用灰度差值小于某个阈值来表示,不同的判定准则可能会产生不同的分割结果。
区域生长算法的实现步骤如下:
1. 随机或者对图像进行扫描,找到第一个还没有赋予属性的像素, 设该像素为(x0, y0);
2. 以(x0, y0)为中心, 考虑(x0, y0)的4邻域或者8邻域像素(x,y)与种子像素的灰度值之差的绝对值小于某个阈值T,如果满足条件, 将(x, y)与(x0, y0)合并(在同一区域内), 同时将(x, y)压入堆栈;3. 从堆栈中取出一个像素, 把它当作(x0, y0)返回到步骤2;4. 当堆栈为空时!返回到步骤1;5. 重复步骤1 - 4直到图像中的每个点都有归属时。生长结束。