把图像进行分割为多个区域。

方案1,寻找灰度级不连续区域间的边界

方案2,基于像素性质分布的阈值处理

方案3,直接寻找区域的分割技术

区域生长就是方案三,它是根据事先定义的准则将像素或者子区域聚合成更大区域的过程。其基本思想是从一组生长点开始(生长点可以是单个像素,也可以是某个小区域),将与该生长点性质相似的相邻像素或者区域与生长点合并。然后将这些新像素当作新的生长点,继续上面的操作,一直重复此过程,直到没有满足条件的像素可被包括进来,此时就表示生长点已经不能生长,这样一个区域就生长成了。生长点和相似区域的相似性判断依据可以是灰度值、纹理、颜色等图像信息。所以区域生长算法关键有三个:
1、选择合适的生长点
2、确定相似性准则即生长准则
3、确定生长停止条件
下面给出一个区域生长的实例:

图(a)为原始图像,数字表示像素的灰度。以灰度值为8的像素为初始的生长点,记为f(i,j)。在8邻域内,生长准则是待测点灰度值与生长点灰度值相差为1或0。

那么图(b)是第一次区域生长后,f(i-1,j)、f(i,j-1)、f(i,j+1)和生长点灰度值相差都是1,因而被合并。

图(c)是第二次生长后,f(i+1,j)被合并。图(d)为第三次生长后,f(i+1,j-1)、f(i+2,j)被合并,至此,已经不存在满足生长准则的像素点,生长停止

区域生长算法 R语言库 区域生长法计算题_灰度值

 

区域生长实现的步骤如下:

1. 对图像顺序扫描,找到第1个还没有归属的像素, 设该像素为(x0, y0);

2. 以(x0, y0)为中心, 考虑(x0, y0)的4邻域像素(x, y)如果(x0, y0)满足生长准则, 将(x, y)与(x0, y0)合并(在同一区域内), 同时将(x, y)压入堆栈;

3. 从堆栈中取出一个像素, 把它当作(x0, y0)返回到步骤2;

4. 当堆栈为空时,返回到步骤1;

5. 重复步骤1 - 4直到图像中的每个点都有归属时。生长结束。