2024年6月2日发(作者:)
. . -
经典边缘检测算子比较
一各种经典边缘检测算子原理简介
图像的边缘对人的视觉具有重要的意义,一般而言,当人们看一个有边缘的物体时,首先感
觉到的便是边缘。灰度或结构等信息的突变处称为边缘。边缘是一个区域的结束,也是另一
个区域的开始,利用该特征可以分割图像。需要指出的是,检测出的边缘并不等同于实际目
标的真实边缘。由于图像数据时二维的,而实际物体是三维的,从三维到二维的投影必然会
造成信息的丢失,再加上成像过程中的光照不均和噪声等因素的影响,使得有边缘的地方不
一定能被检测出来,而检测出的边缘也不一定代表实际边缘。图像的边缘有方向和幅度两个
属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。边缘上的这种变化可以用
微分算子检测出来,通常用一阶或两阶导数来检测边缘,如下图所以。不同的是一阶导数认
为最大值对应边缘位置,而二阶导数则以过零点对应边缘位置。
(a)图像灰度变化(b)一阶导数(c)二阶导数
基于一阶导数的边缘检测算子包括Roberts算子、Sobel算子、Prewitt算子等,在算法实现
过程中,通过
22
(Roberts算子)或者
33
模板作为核与图像中的每个像素点做卷积和运
算,然后选取合适的阈值以提取边缘。拉普拉斯边缘检测算子是基于二阶导数的边缘检测算
子,该算子对噪声敏感。一种改进方式是先对图像进行平滑处理,然后再应用二阶导数的边
缘检测算子,其代表是LOG算子。前边介绍的边缘检测算子法是基于微分方法的,其依据
是图像的边缘对应一阶导数的极大值点和二阶导数的过零点。Canny算子是另外一类边缘检
测算子,它不是通过微分算子检测边缘,而是在满足一定约束条件下推导出的边缘检测最优
化算子。
1 Roberts(罗伯特)边缘检测算子
景物的边缘总是以图像中强度的突变形式出现的,所以景物边缘包含着大量的信息。由于景
物的边缘具有十分复杂的形态,因此,最常用的边缘检测方法是所谓的“梯度检测法”。
设
f(x,y)
是图像灰度分布函数;
s(x,y)
是图像边缘的梯度值;
(x,y)
是梯度的方向。则
有
s(x,y)
f(xn,y)f(x,y)
f(x,yn)f(x,y)
2
1
2
2
(1)
(n=1,2,...)
(x,y)tan
1
f(x,yn)f(x,y)
/
f(xn,y)f(x,y)
(2)
. -可修- .
. . -
式(1)与式(2)可以得到图像在(x,y)点处的梯度大小和梯度方向。
将式(1)改写为:
g(x,y)
f(x,y)f(x1,y1)
f(x1,y)f(x,y1)
2
1
2
2
(3)
g(x,y)
称为Roberts边缘检测算子。式中对
f(x,y)
等的平方根运算使该处理类似于人类视
觉系统的发生过程。事实上Roberts边缘检测算子是一种利用局部差分方法寻找边缘的算子,
Robert梯度算子所采用的是对角方向相邻两像素值之差,所以用差分代替一阶偏导,算子形
式可表示如下:
x
f(x,y)f(x,y)f(x1,y1)
(4)
f(x,y)f(x1,y)f(x,y1)
y
上述算子对应的两个
22
模板如图(A)所示。实际应用中,图像中的每个像素点都用这两
个模板进行卷积运算,为避免出现负值,在边缘检测时常提取其绝对值。
1 0
0 1
0 -1
-1 0
(a)(b)
图(A)Robert算子模板
2 Sobel(索贝尔)边缘检测算子
该算子是由两个卷积核
g
1
(x,y)
与
g
2
(x,y)
对原图像
f(x,y)
进行卷积运算而得到的。
其数学表达式为:
MN
MN
S(x,y)MAX
f(m,n)g
1
(im,jn),
f(m,n)g
2
(im,jn)
(5)
m1n1
m1n1
实际上Sobel边缘算子所采用的算法是先进行加权平均,然后进行微分运算,我们可以
用差分代替一阶偏导,算子的计算方法如下:
x
f(x,y)
f(x1,y1)2f(x,y1)f(x1,y1)
f(x1,y1)2f(x,y1)f(x1,y1)
y
f(x,y)
f(x1,y1)2f(x1,y)f(x1,y1)
f(x1,y1)2f(x1,y)f(x1,y1)
(6)
Sobel算子垂直方向和水平方向的模板如图(B)所示,前者可以检测出图像中的水平方
向的边缘,后者则可以检测图像中垂直方向的边缘。实际应用中,图像中的每一个像素点都
用这两个卷积核进行卷积运算,取其最大值作为输出。运算结果是一幅体现边缘幅度的图像。
-1
0
-2
0
-1
0
. -可修- .
发布评论