2.2 Sobel算子细化边缘
图像边缘包含图像的大量信息,但模板计算的数值仅仅只是图像对应的梯度图像,边缘出现于梯度较大位置,若想提取图像边缘必须设定阈值将其二值化。由一阶梯度算子得到梯度图像,一般边缘较粗,若直接对其梯度图像设定阈值进行二值化,很难找到合适的阈值.也不便于边缘连接与边缘特征提取等后期处理。因此在对图像梯度图像进行二值化前,必须细化所检测的梯度边缘。细化原理是基于经典Sobel算子定义的:
Sobel算子模板中的元素表示算式中相应像素的权重因子。Sobel算子是边缘检测算子,故其处理模板中各因子之和为零。另一方面,由于正因子和负因子之和分别为4和一4,在极端情况下处理结果可能溢出。因此,在实际使用时,Sobel算子通常采用已设定阈值进行二值化,即处理结果得到的是已二值化的边缘图。该结果将导致边缘图中幅值较小的边缘丢失。为了克服这个缺陷,引入一个衰减因子Scale,用它去除计算结果,来消除数据的溢出,而无需二值化处理,而且其结果是无失真的灰阶边缘图,从而保留所有边缘数值同。加入扩展的模板后可得:
因子Scale取4,它也是归一化因子,即两个灰度层的阶跃,交界处的处理结果就是其灰度差值。
灰度图像细化处理步骤如下:①对灰度图像作带衰减因子的Sobel处理,得灰度边缘图。Sobel处理采用式(3);②对所得灰度边缘图再作带衰减因子的Sobel处理;③灰度边缘图减去Sobel处理结果,再将与负值部分对应的边缘点的值改为零,得到细化的边缘图。