数字图像处理几种边缘检测算子的比较 (2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理
几种边缘检测算子的比较
边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图
像中亮度变化明显的点。
图像属性中的显著变化通常反映了属性的重要事件和变化。
这些包括:深度上的不连续、表面方向不连续、物质属性变化和场景照明变化。
边缘
检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。
图像边缘检测
大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结
构属性。
有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于查找一
类和基于零穿越的一类。
基于查找的方法通过寻找图像一阶导数中的最大和最小值
来检测边界,通常是将边界定位在梯度最大的方向。
基于零穿越的方法通过寻找图
像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过
零点。
人类视觉系统认识目标的过程分为两步:首先,把图像边缘与背景分离出来;然后,才能知觉到图像的细节,辨认出图像的轮廓。
计算机视觉正是模仿人类视觉的这个过程。
因此在检测物体边缘时,先对其轮廓点进行粗略检测,然后通过链接规则把原来
检测到的轮廓点连接起来,同时也检测和连接遗漏的边界点及去除虚假的边界点。
图
像的边缘是图像的重要特征,是计算机视觉、模式识别等的基础,因此边缘检测是图
象处理中一个重要的环节。
然而,边缘检测又是图象处理中的一个难题,由于实际景
物图像的边缘往往是各种类型的边缘及它们模糊化后结果的组合,且实际图像信号存
在着噪声。
噪声和边缘都属于高频信号,很难用频带做取舍。
这就需要边缘检测来进行解决的问题了。
边缘检测的基本方法有很多,一阶的有Roberts Cross算子,Prewitt算子,Sobel算子,Canny算子, Krisch算子,罗
盘算子;而二阶的还有Marr-Hildreth ,在梯度方向的二阶导数过零点。
现在就来简单介绍一下各种算子的算法
Roberts 算子
Roberts 算子是一种利用局部差分算子寻找边缘的算子,它有下式给出:
g(x,y)=[√f(x,y)−√f(x +1,y +1)]2+[√f (x,y +1)−√f (x +1,y )]2
其中f(x,y)、f(x +1,y)、f (x,y +1)和 f(x +1,y +1) 分别为4领域的坐标,且是具有整数像素坐标的输人图像;其中的平方根运算使得该处理类似于人类视觉系统中发生的过程。
Roberts 算子是2X2算子模板。
图1所示的2个卷积核形成了Roberts 算子。
图象中的每一个点都用这2个核做卷积。
图1 Roberts 算子
Sobel 算子
Sobel 算子是一种一阶微分算子,它利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一定的绝对值来取舍。
它由下式给出:
S =√(dx 2+dy 2)
Sobel 算子是3*3算子模板。
图2所示的2个卷积核dx 、 dy 形成Sobel 算子。
一个核对通常的垂直边缘响应最大,而另一个核对水平边缘响应最大。
2个卷积的最大值作为该点的输出值。
运算结果是一幅边缘幅度图像。
1
0 0 -1 0 1 -1 0
-1
0 1 -2
0 2 -1 0 1 2 Sobel 算子
Prewitt 算子
Prewitt 算子由下式给出:
Sp =√(dx 2+dy 2)
Prewitt 算子是3*3算子模板。
图3所示的2个卷积核dx ,不要形成了Prewitt 算子。
与Sobel 算子的方法一样,图像中的每个点都用这2个核进行卷积,取最大值作为输出值。
Prewitt 算子也产生一幅边缘幅度图像。
-1
0 1 -1
0 1 -1 0 1 LOG 滤波器又称Marr-Hildreth 模板或算子
∇G (x,y )=ð2G ð2x +ð2G ð2y =1πð4(x 2+y 2
σ2−1)exp (−x 2+y 2
2σ2)
式中:G(x,y)是对图像进行处理时选用的平滑函数(Gaussian 函数);x ,y 为整数坐标; σ为高斯分布的均方差。
对平滑后的图像fs(fs=f(x,y)*G(x,y))做拉普拉斯变换,得:
h(x,y)=∇2fs (x,y )=∇2[f (x,y )∗G (x,y )]=f (x,y )∗∇2G(x,y)
即先对图象平滑,后拉氏变换求二阶微分,等效于把拉氏变化作用于平滑函数,得到1个兼有平滑和二阶微分作用的模板,再与原来的图像进行卷积。
用Marr-
Hildreth 模板与图像进行卷积的优点在于,模板可以预先算出,实际计算可以只进行卷积。
1 2 1 0 0 0 -1
-2 -1 1 1 1 0 0 0 -1 -1 -1
LOG滤波器有以下特点:
(1)通过图象平滑,消除了一切尺度小于σ的图像强度变化;
(2)若用其它微分法,需要计算不同方向的微分,而它无方向性,因此可以节省计
算量;
(3)它定位精度高,边缘连续性好,可以提取对比度较弱的边缘点。
LOG滤波器也有它的缺点:当边缘的宽度小于算子宽度时,由于过零点的斜坡融合将会丢失细节。
LOG滤波器有无限长的拖尾,若取得很大尺寸,将使得计算不堪重负。
但随
着:r=√x2+y2的增加,LOG滤波器幅值迅速下降,当r大于一定程度时,可以忽略模板的作用,这就为节省计算量创造了条件。
实际计算时,常常取n* n大小的LOG滤波器,近似n=3σ。
另外,LOG滤波器可以近似为两个指数函数之差,即DOG
( Difference Of two Gaussians functions):
DOG(σ1,σ2)=1
2πσ12exp (−x2+y2
2σ12
)-1
2πσ22
exp (−x2+y2
2σ22
)
当σ1/σ2=1.6时,DOG代替LOG减少了计算量。
Canny算子
Canny算子是是一阶算子。
其方法的实质是用1个准高斯函数作平滑运算
fs=f(x,y)*G(x,y),然后以带方向的一阶微分算子定位导数最大值。
平滑后fs(x,y)的梯度可以使用2*2的一阶有限差分近似式:
P[i,j]≈(fs[i,j+1]-fs[i,j]+fs[i+1,j+1]-fs[i+1,j])/2
Q[i,j] ≈(fs[i,j]-fs[i+1,j]+fs[i,j+1]-fs[i+1,j+1])/2
在这个2x2正方形内求有限差分的均值,便于在图像中的同一点计算二和y的偏导数梯度。
幅值和方向角可用直角坐标到极坐标的坐标转化来计算:
M[i,j]=√P[i,j]2+Q[i,j]2
θ[i,j]=tan−1(Q[i,j]/P[i,j])
M[i,j]反映了图象的边缘强度; θ[i,j]反映了边缘的方向。
使得M}i,j}取得局部最大值的方向角θ[i,j],就反映了边缘的方向。
Canny算子也可用高斯函数的梯度来近似,在理论上很接近4个指数函数的线性组合形成的最佳边缘算子。
在实际工作应用中编程较为复杂且运算较慢。
几种算子的比较
Robert算子定位比较精确,但由于不包括平滑,所以对于噪声比较敏感。
Prewitt 算子和Sobel算子都是一阶的微分算子,而前者是平均滤波,后者是加权平均滤波且检测的图像边缘可能大于2个像素。
这两者对灰度渐变低噪声的图像有较好的检测效果,但是对于混合多复杂噪声的图像,处理效果就不理想了。
LOG滤波器方法通过检测二阶导数过零点来判断边缘点。
LOG滤波器中的a正比于低通滤波器的宽度,a越大,平滑作用越显著,去除噪声越好,但图像的细节也损失越大,边缘精度也就越低。
所以在边缘定位精度和消除噪声级间存在着矛盾,应该根据具体问题对噪声水平和边缘点定位精度要求适当选取。
讨论和比较了几种常用的边缘检测算子。
梯度算子计算简单,但精度不高,只能检测出图像大致的轮廓,而对于比较细的边缘可能会忽略。
Prewitt 和Sobel 算子比Roberts 效果要好一些。
LOG 滤波器和Canny 算子的检测效果优于梯度算子,能够检测出图像较细的边缘部分。
不同的系统,针对不同的环境条件和要求,选择合适的算子来对图像进行边缘检测。