提示:文章参考了网络上其他作者的文章,以及相关书籍,如有侵权,请联系作者。
前言
如果想要获得具有相似灰度的相连区域,可以使用区域生长法寻找相邻的符合条件的像素。区域生长法的基本思想是,在图像上选定一个“种子”像素或“种子”区域,然后从“种子”的邻域像素开始搜索,将灰度或者颜色相近的像素附加在“种子”上,最终将代表同一物体的像素全部归属于同一“种子”区域,达到将目标物体分割出来的目的。
注意:区域生长法的算法执行速度非常快,适用于对检测速度要求高的情况。
一、regiongrowing算子
Halcon 中的 regiongrowing 算子实现了区域生长的功能,它能将灰度相近的相邻像素合并为同一区域。regiongrowing 算子的原型如下:
regiongrowing(Image : Regions : Row, Column, Tolerance, MinSize:)
其中各参数的含义如下。
1)、参数1:Image为输入的单通道图像。
2)、参数2:Regions为输出的一组区域。
3)、参数3和4:Row、Column分别为矩形区域的宽和高,需要是奇数,以便计算中心点坐标。默认为1,1,也可以选择其他奇数。
4)、参数5:Tolerance为灰度差值的分割标准。如果另一个点的灰度与种子区域的灰度差值小于Tolerance,则认为它们可以合并为同一区域。这个值默认为6.0。
5)、参数6:MinSize,表示输出区域的最小像素数,默认为100。
其工作步骤如下。
1)、设定一个尺寸为Row*Column的卷积核,以及一个作为分界依据的像素灰度差值 Tolerance。
2)、使用上述指定尺寸的卷积核在原图上进行扫描,并计算卷积核内矩形图像的中心点灰度与邻域矩形图像的中心点灰度差。如果差值小于Tolerance,则将这两个矩形区域合并为同一个。
卷积核默认为1*1,一般长宽都为奇数。如果大于1*1,需要先对图像进行平滑处理,平滑的卷积核大小至少为Row*Colum,这是为了使矩形中心更突出。如果图像上的噪点比较多并且卷积核比较小,也可以省略平滑这一步骤,以减少误判。
3)、对合并后的区域进行判断,如果该区