1.1 图像边缘的定义
从人的直观感受来说,边缘[12]相当于是物体的边界。主要表现为图像局部特征的不连续性。图像上灰度变化明显的区域比较符合这一要求,我们一般会以这个特征来提取图像的边缘。边缘提取就是要保留图像的灰度变化明显的区域。
边缘通常分为两种类型:阶跃边缘和屋顶边缘。阶跃边缘在阶跃两边的灰度值有明显变化;而屋顶边缘是位于灰度增加和减少的交界处。可以利用灰度的导数来刻画边缘点的变化,求阶跃边缘和屋顶边缘的一阶导数和二阶导数,如图:
图1.1 阶跃型边缘 图1.2 屋顶型边缘
1.2 图像边缘提取的研究
1.3 图像边缘提取算法的发展趋势
1.4 经典的图像边缘提取算法
图像边缘提取的基本思想首先利用边缘增强算子,突出局部边缘,再定义“边缘强度”,通过设置阈值来提取边缘的点集。但因为图像模糊和噪声,检测到的边界可能会发生间断现象。
1.3.1 Robert算子
Roberts边缘检测算子[9][10][11]又称梯度交叉算子,是一种利用局部差分算子寻找边缘的算子。根据任意一个相互垂直方向上的差分来估计梯度,对图像f(x,y)的像素点取梯度值:
(1)
其中 和 为:
(2)
取门限G0,将G(i,j)>G0的边界上的点二值化,二值图像为:
(3)
对G(i,j)近似计算,Robert算子为:
(4)
罗伯特算子是算子中最简单的一个,对陡峭的低噪声图像的效果最好,不过它提取的边缘比较粗,定位不够准确,受噪声影响比较大。
1.3.2 Sobel算子
索贝尔算子[13]能应用广泛在于它的形式是滤波算子,用于提取边缘可以用快速卷积函数,简单有效。然而,Sobel算子没有将图像的背景和主体严格区分,也就是说,Sobel算子没有基于图像灰度,没有严格模拟人的视觉特征,因而提取的图像轮廓不能让人满意。
Sobel算子利用梯度与差分原理对靠近中心的点加权,突出边缘。其定义为:
G(i,j)=|[f(i-1,j-1)+2f(i-1,j)+f(i-1,j+1)]-[f(i+1,j-1)
+2f(i+1,j)+f(i+1,j+1)]|+|[f(i-1,j-1)+2f(i,j-1)
+f(i+1,j-1)]-[f(i-1,j+1)+2f(i,j+1)+f(i+1,j+1)]| 源[自[优尔^`论`文]网·www.youerw.com/
Sobel算子的优点是计算简单,速度快。但是只能检测水平和垂直两个方向的边缘,对纹理复杂的图像边缘提取的效果较差。
1.3.3 Prewitt算子
Prewitt算子和Sobel算子相类似,只是权值不同,不过两种实现的功能还是有差别的,Sobel算子比Prewitt算子更能准确的检测图像的边缘。
Prewitt算子[18]是一阶微分算子,原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。利用像素点上下、左右的邻点的灰度差,在边缘处达到极值检测边缘,去掉伪边缘,对噪声具有平滑作用 。
对于图像f(x,y),定义如下:
G(i)=|[f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)]-
[f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)]| (2)
G(j)=|[f(i-1,j+1)+f(i,j+1)+f(i+1,j+1)]-
[f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)]| (3)