图像分割算法一般是基于亮度的两个基本特征之一:不连续性和相似性。前者主要应用于亮度不连续变化的分割方法,后者场应用于依据制定的相似性规则来进行分割。
基于不连续性的分割——间断检测
模板:以待测点在内的某个邻域,各个像素点对应的位置有不同的权重,但所有的权重之和为0,表示在灰度级恒定的区域内来自模板的响应为零。
1)点检测
|R|>T,其中R是模板运算后的结果,T为设计的一个阈值,当满足条件时即认为检测到了一个点。例如一个模板可以为:BLOCK = [-1,-1,-1;-1,8,-1;-1,-1,-1]。
2)线检测
模板的设计过程中,使用在各个正值的权重处于一条线上,用于检测图像中是否有该方向上的线(其他方向上的线并不检测)。模板运算后的结果大于阈值则认为存在。
BLOCK = [-1,-1,-1;2,2,2;-1,-1,-1]
3)边缘检测
边缘的检测方法常常是使用一阶或者二阶数字导数来实现。一阶导描述的是灰度的变化趋势,二阶导是一阶导的变化描述。常见的一节算子有:roberts、sobel、prewiit等算子;二阶算子有拉普拉斯算子。拉普拉斯算子由于其对噪声敏感且其幅值产生双边缘,因此不用于边缘检测,但常利用其零交叉的性质进行边缘定位。
边缘连接:霍夫变换
基于相似性的分割
阈值分割
设置一个全局的阈值,图像中的像素值大于该阈值则为1,否则为0。此时获得图像的二值图像(前景和后景)。
阈值的获取方法:
<1>随机选取一个值,然后迭代的选取前后景的平均值作为新的阈值,重新分割。
<2>灰度直方图,如果是双峰,则选取两个波峰的波谷最底处对应的灰度值做为阈值。
<3>...
区域生长
选取种子;根据添加规则判断像素是否加入该区域。
区域的分离与合并。
分水岭
分水岭分割算法主要应用于从背景中提取出近乎一致的对象。分水岭算法易受噪声的影响或者局部梯度不均造成过分割,可以使用添加标签或者进行区域合并的方法来优化。