您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 常用边缘检测算子比较
第1页常用边缘检测算子边缘检测算子边缘检测经典算子:Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG滤波器(Marr-Hildreth算子)、Kirsch算子、Canny算子等。Roberts算子景物的边缘总是以图像中强度的突变形式出现的,所以景物边缘包含着大量的信息。由于景物的边缘具有十分复杂的形态,因此,最常用的边缘检测方法是所谓的“梯度检测法”。设(,)fxy是图像灰度分布函数;(,)sxy是图像边缘的梯度值;(,)xy是梯度的方向。则有1222(,)(,)(,)(,)(,)sxyfxnyfxyfxynfxy(1)(n=1,2,...)1(,)tan(,)(,)/(,)(,)xyfxynfxyfxnyfxy(2)式(1)与式(2)可以得到图像在(x,y)点处的梯度大小和梯度方向。将式(1)改写为:1222(,)(,)(1,1)(1,)(,1)gxyfxyfxyfxyfxy(3)(,)gxy称为Roberts边缘检测算子。式中对(,)fxy等的平方根运算使该处理类似于人类视觉系统的发生过程。事实上Roberts边缘检测算子是一种利用局部差分方法寻找边缘的算子,Robert梯度算子所采用的是对角方向相邻两像素值之差,所以用差分代替一阶偏导,算子形式可表示如下:(,)(,)(1,1)(,)(1,)(,1)xyfxyfxyfxyfxyfxyfxy(4)上述算子对应的两个22模板如图(A)所示。实际应用中,图像中的每个像素点都用这两个模板进行卷积运算,为避免出现负值,在边缘检测时常提取其绝对值。(a)(b)100-101-10第2页图(A)Robert算子模板Sobel算子该算子是由两个卷积核1(,)gxy与2(,)gxy对原图像(,)fxy进行卷积运算而得到的。其数学表达式为:121111(,)(,)(,),(,)(,)MNMNmnmnSxyMAXfmngimjnfmngimjn(5)实际上Sobel边缘算子所采用的算法是先进行加权平均,然后进行微分运算,我们可以用差分代替一阶偏导,算子的计算方法如下:(,)(1,1)2(,1)(1,1)(1,1)2(,1)(1,1)(,)(1,1)2(1,)(1,1)(1,1)2(1,)(1,1)xyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxy(6)Sobel算子垂直方向和水平方向的模板如图(B)所示,前者可以检测出图像中的水平方向的边缘,后者则可以检测图像中垂直方向的边缘。实际应用中,图像中的每一个像素点都用这两个卷积核进行卷积运算,取其最大值作为输出。运算结果是一幅体现边缘幅度的图像。(a)(b)图(B)Sobel算子模板Prewitt算子Prewitt边缘检测算子就是一种利用局部差分平均方法寻找边缘的算子,它体现了三对像素点像素值之差的平均概念,因为平均能减少或消除噪声,为此我们可以先求平均,再求差分,即利用所谓的平均差分来求梯度。用差分代替一阶偏导可得算子形式如下:(,)(1,1)(,1)(1,1)(1,1)(,1)(1,1)(,)(1,1)(1,)(1,1)(1,1)(1,)(1,1)xyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxy(7)Prewitt边缘检测算子的两个模板如图(C)所示,它的使用方法同Sobel算子一样,图像中的每个点都用这两个核进行卷积,取得最大值作为输出。Prewitt算子也产生一幅边缘图像。-1-2-1000121-101-202-301第3页(a)(b)1.1.1.1.1.1.1.1图(C)Prewitt算子模板Laplace算子对于阶跃状边缘,其二阶导数在边缘点出现过零交叉,即边缘点两旁的二阶导数取异号,据此可以通过二阶导数来检测边缘点。拉普拉斯边缘检测算子正是对二维函数进行二阶导数运算的标量算子,它的定义是:22222(,)(,)(,)fxyfxyfxyxy(8)用差分代替二阶偏导时,与前述三个一阶导数算子不同,拉普拉斯算子的形式可表示如下:22(,)(1,)(1,)(,1)(,1)4(,)(,)(1,1)(,1)(1,1)(1,)(1,)(1,1)(,1)(1,1)8(,)fxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxyfxy(9)拉普拉斯边缘检测算子的模板如图(D)所示,模板的基本特征是中心位置的系数为正,其余位置的系数为负,且模板的系数之和为零。它的使用方法是用图中的两个点阵之一作为卷积核,与原图像进行卷积运算即可。拉普拉斯算子又是一个线性的移不变算子,它的传递函数在频域空间的原点为零,因此,一个经拉普拉斯滤波过的图像具有零平均灰度。拉普拉斯检测模板的特点是各向同性,对孤立点及线端的检测效果好,但边缘方向信息丢失,对噪声敏感,整体检测效果不如梯度算子。因此,它很少直接用于边缘检测。但注意到与Sobel算子相比,对图像进行处理时,拉普拉斯算子能使噪声成分得到加强,对噪声更敏感。(a)(b)图(D)Laplace算子模板10-110-110-1-1-1-10001110-10-14-10-10-1-1-1-18-1-1-1-1第4页Marr-Hildreth算子实际应用中,由于噪声的影响,对噪声敏感的边缘检测点检测算法(如拉普拉斯算子法)可能会把噪声当边缘点检测出来,而真正的边缘点会被噪声淹没而未检测出。为此Marr和Hildreth提出了马尔算子,因为是基于高斯算子和拉普拉斯算子的,所以也称高斯-拉普拉斯(LaplacianofGaussian,LoG)边缘检测算子,简称LoG算子。该方法是先采用高斯算子对原图像进行平滑又降低了噪声,孤立的噪声点和较小的结构组织将被滤除由于平滑会导致边缘的延展,因此在边缘检测时仅考虑那些具有局部最大值的点为边缘点,这一点可以用拉普拉斯算子将边缘点转换成零交叉点,然后通过零交叉点的检测来实现边缘检测。所谓零交叉点就是:如果一个像素处的值小于一0,而此像素8-连通的各个像素都是大于0(0是一个正数),那么这个像素就是零交叉点。这样还能克服拉普拉斯算子对噪声敏感的缺点,减少了噪声的影响。二维高斯函数为222(,)()2xyhxyexp(10)则连续函数(,)fxy的LoG边缘检测算子定义为2(,)(,)(,)Gxyhxyfxy2(,)*(,)hxyfxy(,)*(,)Hxyfxy(11)222242(,)(,)exp()2rrHxyhxy(12)其中222,rxy是标准差。算子(,)Hxy是一个轴对称函数,其横截面如图(E)所示。由于它相当的平滑,能减少噪声的影响,所以当边缘模糊或噪声较大时,利用(,)Hxy检测过零点能提供较可靠的边缘位置。H(x,y)r第5页0图(E)H(x,y)的截面图LoG算子在(x,y)空间具有以原点为中心旋转的对称性,LoG滤波器具有如下三个显著特点:该滤波器中的高斯函数部分对图像具有平滑作用,可有效地消除尺度远小于高斯分布因子的噪声信号。高斯函数在空域和频域内都具有平滑作用。该滤波器采用拉普拉斯算子2可以减少计算量。马尔算子用到的卷积模板一般比较大(典型半径为8-32个像素),不过这些模板可以分解为一维卷积来快速计算。常用的LoG算子是55模板,如图(F)。与其他边缘检测算子一样,LoG算子也是先对边缘做出假设,然后再这个假设下寻找边缘像素。但LoG算子对边缘的假设条件最少,因此它的应用范围更广。另外,其他边缘检测算子检测得到的边缘时不连续的,不规则的,还需要连接这些边缘,而LoG算子的结果没有这个缺点。对于LoG算子边缘检测的结果可以通过高斯函数标准偏差来进行调整。即值越大,噪声滤波效果越好,但同时也丢失了重要的边缘信息,影响了边缘检测的性能;值越小,又有可能平滑不完全而留有太多的噪声。因此,在不知道物体尺度和位置的情况下,很难准确确定滤波器的值。一般来说,使用大值的滤波器产生鲁棒边缘,小的值的滤波器产生精确定位的边缘,两者结合,能够检测出图像的最佳边缘。数学上以证明,马尔算子是按零交叉检测阶跃状边缘的最佳算子。但在实际图像中要注意到,高斯滤波的零交叉点不一定全部是边缘点,还需要进一步对其真伪进行检验。图(F)LoG算子是55模板Kirsch(凯西)边缘检测算子Kirsch边缘检测算子由8个卷积核组成,图像中的每个像素点都用这8个核进行卷积运算,即须求出(,)fxy8个方向的平均差分。像素与不同卷积核卷积运算的结果给出了相应特定边缘方向的响应。从所有方向相应中找出一个最大值,就给出了经过该点的边缘幅度图像的输出值。使输出最大的卷积核的序号既是边缘方向的编码。该算子还可以较好地抑制边缘检测的噪声。假设原始图像的33子图像如图(G)所示。-2-4-4-4-2-4080-4-48248-4-4080-4-2-4-4-4-23a2a1a4a(,)ij0a5a6a7a第6页图(G)33子图像示意图则边缘的梯度大小为(,)max1,max(54:0,1,...7)kkGijstk(13)式中12347...kkkkkkkksaaataaa(14)式(14)中的下标超过7就用8去除并取余数。k=0,1,...,7实际上就是使用了8个模板,8个方向的模板如图(H)所示55530-3-3-33355-305-3-3-3-335-305-3-35-3-3-3-305-355-3-3-3-303555-3-3-3503553第7页图(H)Kirsch算子的8方向模板从上面的8个方向模板可以看出,每两个卷积核(模板)之间的夹角为45度。对于图像T,模块为kW(k=1,2,...,8),则边缘强度在点(x,y)处为:(,)maxkExyWT{k=1,2,...,8}(15)其中,以表示点乘运算。如果取最大值的模作为边缘强度,同时用考虑最大值符号的方法来确定相对应的边缘方向,则考虑到各模板的对称性,只需要前四个模板即可。对于Kirsch算子也有几种不同的形式,如图(I)所示8方向的55模板就是一种比较常用的方式。图(I)8方向55Kirsch算子的前4个如果对图像进行二值化分析,可以发现图像中非边缘点往往低于阈值,而大多数边缘点则往往高于该阈值。Kirsch方向算子正是利用了这种现象,在进行边缘的检测时,首先用一个中偏低的灰度阈值对梯度图像进行二值化,从而检测出物体与背景,物体与背景被处于阈值之上的边界分开。随着阈值的不断提高,也促使物体和背景的一同增长,当达到接触而又不合并的临界状态时,就可以用接触点来定义边缘。确定了处于边缘的像素点之后,理想的情形是这些边缘点都是连续的,把各个点连接起来就构成了区域的边缘,各个区域也就分割开来了。但是,在很多情况下,边缘点或边缘线端之间会有间断。所以通常情况下,如果边缘点很稀疏,那么就要用分段线性或高阶样条曲线来拟合这些点,从而形成一条可以用来分割区域的适用边界。总之,虽然Kirsch方向算5-3-3503553553503-3-3-301111-10111-1-1011-1-1-101-1-1-1-10-1-1011-1-1011-1-1011-1-1011-1-1011111101110-1110-1-110-1-1-10-1-1-1-1111111111100000-1-1-1-1-1-1-1-1-1-1第8页子的计算开销比较大,
本文标题:常用边缘检测算子比较
链接地址:https://www.777doc.com/doc-5428425 .html