1
基于MATLAB的数字图像处理研究
1.7.6.1 5.6.1 区域生长

5.6.1 区域生长

区域生长是串行区域分割最基本的方法。所谓区域生长就是一种根据事先定义的准则将像素或者子区域聚合成更大区域的过程。从某个像素出发,按照一定的准则,逐步加入邻近像素,当满足一定的条件时,区域生长终止。区域生长的好坏决定于初始点(种子点)的选取、生长准则、终止条件。

区域生长是从满足检测准则某个或者某些像素点出发,在各个方向上生长区域,当其邻近点满足检测准则就并入小块区域中。当新的点被合并后再用新的区域重复这一过程,直到没有可接受的邻近点时生成过程终止。最后得到整个区域,进而实现目标的提取。

分裂合并差不多是区域生长的逆过程:从整个图像出发,不断分裂得到各个子区域,然后再把前景区域合并,实现目标的提取。分裂合并的假设是对于一幅图像,前景区域由一些相互连通的像素组成。因此,如果把一幅图像分裂到像素级,那么就可以判定该像素是否为前景像素,当所有像素点或者子区域完成判断后,把前景区域或像素合并就可得到前景目标。

在work目录下,调用regiongrow.p函数,实现区域生长分割法检测不良焊接区域。图5-38是一幅焊接彩色图像,明显有不良焊接区域,图5-39是转换后的灰度图像,图5-40是确定的种子点图像,图5-41是通过阈值测试的图像,图5-42是用区域生长分割提取后的结果,以合理的精度分割了有缺陷的焊接。程序代码如下:

f=imread('bad.jpg');

imshow(f);

f=rgb2gray(f);

figure,imshow(f);

s=155;

t=35;

[g,nr,si,ti]=regiongrow(f,s,t);

figure,imshow(si);

figure,imshow(ti);

figure,imshow(g)。

img141

图5-38

img142

图5-39

img143

图5-40

img144

图5-41

img145

图5-42