边缘检测 本科毕业设计论文 - 图文 联系客服

发布时间 : 星期五 文章边缘检测 本科毕业设计论文 - 图文更新完毕开始阅读5c083bdf5022aaea998f0fbe

重庆邮电大学计算机科学与技术学院本科毕业设计(论文)

第三章 经典微分算子

第一节 经典一阶微分算子

一阶梯度所对应的就是一阶导数,所以一阶微分算子是一阶导数算子。由于边缘是图像灰度变化比较剧烈的地方,在灰度突变处,求导将残生较大值,因此在数学上可用灰度导数的大小来表示灰度的变化[5]。

在数学上,可以用f(x,y) 表示一幅连续的图像,在图像中某点的梯度可以表示为:

?f(x,y)?[?f(x,y)?f(x,y)T]?[f(x,y)Xf(x,y)y]T (3.1)

?x?y在公式3.1中,f(x,y)X是沿x方向的偏导数,f(x,y)y是沿y方向的偏导数。梯度的幅值是公式3.2:

|?f(x,y)|?2f(x,y)2 x?f(x,y)y (3.2)

还可以求的梯度的方向,这个方向是与x轴的夹角:

?f(x,y)x?(x,y)?arctan??f(x,y)y?? (3.3) ???在实际应用中,为了方便计算,人们提出了公式3.2的近似公式3.4:

|?f(x,y)|?|f(x,y)x|?|f(x,y)y| (3.4)

在理论上,在计算图像的梯度时应该用以上公式来计算梯度的幅值和各个偏导,然后再将梯度的幅值作为该处像素点灰度值。然而,在实际应用中,为了实现简便,通常是用模板的卷积运算来进行近似计算。模板的卷积运算的具体实现方法在前文已经进行了论述。根据的模板选取的大小和其中参数的数值,划分出了Roberts 算子,Prewitt算子,Sobel 算子,和方向算子。后面的章节会对以上各种算子做详细的描述。

12

重庆邮电大学计算机科学与技术学院本科毕业设计(论文)

一、Roberts 算子

用f(x,y) 表示一幅连续的图像,为了计算某一点的梯度以及其方向,需要计算该点的偏导数,根据偏导数在数学上的定义,函数f(x,y)在某点的偏导可以表示为:

?ff(x??x,y)?f(x,y)?lim (3.5) ?x?x?0?x?ff(x,y??y)?f(x,y) (3.6) ?lim?y?0?y?y因为数字图像的像素点的分布是离散的,因此可用一阶差分来代替一阶偏导。二维离散图像函数在x方向的一阶差分定义为[6]:

f(x?1,y)?f(x,y) (3.7)

在y方向上的一阶差分相应定义为:

f(x,y?1)?f(x,y) (3.8)

利用像素灰度的一阶导数算子在灰度迅速变化处得到极值来进行奇异点的检测。它在某一点上的值就代表了该点的梯度值。任意一对互相垂直方向上的差分可以看成求梯度的近似方法。

Roberts利用了这一原理,提出了Roberts交叉算子。Roberts算子利用了局部差分法来进行了边缘的检测,采用了对角线方向上两相邻像素之差来替代梯度,即

grad(x,y)?|f(x?1,y?1)?f(x,y)|?|f(x,y?1)?f(x?1,y)| (3.9)

除此之外,还可以适用Roberts最大值算子来进行计算

grad(x,y)?max(|f(x?1,y?1)?f(x,y)|,|f(x,y?1)?f(x?1,y)|) (3.10)

在公式3.9和公式3.10的基础上,提出了Roberts边缘检测算子在x方向和y方向的两个检测的卷积模板:

图3.1 Roberts卷积模板

13

重庆邮电大学计算机科学与技术学院本科毕业设计(论文)

运用图3.1中的两个模板对整幅图像进行卷积运算。在某一点上把模板的两个运算值代入公式3.9进行运算,最后得到的就是Roberts边缘检测算子在差分点(x+1/2,y+1/2)处的差分值,也就是梯度的近似值。在对整幅图像进行了卷积运算之后,再对图像进行二值化处理,可以得到清晰的图像的边缘。图3.2显示了用Roberts边缘检测算子处理后的图像。其中图3.2(b) 是原图,图3.2(a)是处理后的图像。

(a) Roberts算子检测图

(b)Lena原图

图3.2 Roberts检测效果比较图

由图3.2(a)和图3.2(b)比较可见,Roberts边缘检测算子的效果并不理想。图像中背景部分的边缘除了特别明显的几条粗边缘之外,其他较为模糊,噪音较大的区域的边缘都没检测出来。人物的头发以及帽子上的毛发都没检测出来。整幅图像检测出来的边缘相当粗糙。并且检测出来的多是垂直边缘和水平边缘,斜线边缘的检测效果最差。由此,可以归纳出Roberts边缘检测算子的特点:易受噪音影响,并且对于垂直边缘和水平边缘检测效果较好,斜边边缘的检测效果较差,但是,得到的边缘较为纤细,位置较为准确。

为了减少噪音的影响,可以通过在二值化的时候选取适当的阈值进行噪音过滤,分辨出真假的边缘点。还可以在进行用Roberts边缘检测算子处理之前先用除燥的算法对噪音进行过滤,具体的算法后面的章节会提到。

二、Prewitt 算子

为了克服Roberts算子在进行边缘检测对噪音比较敏感的问题,Prewitt等人提

14

重庆邮电大学计算机科学与技术学院本科毕业设计(论文)

出了Prewitt边缘检测算子。Prewitt算子也是利用了边缘检测的差分值来近似替代了该点的梯度值。采用的是3×3的模板来替代了Roberts算子的 2×2的模板,将方向差分运算与局部平均相结合,对噪音有一定的平滑作用。Prewitt算子的表达式如下[5]:

fx(x,y)?f(x?1,y?1)?f(x,y?1)?f(x?1,y?1)?f(x?1,y?1)?f(x,y?1)?f(x?1,y?1)fy(x,y)?f(x?1,y?1)?f(x?1,y)?f(x?1,y?1)?f(x?1,y?1)?f(x?1,y)?f(x?1,y?1) (3.11)

(3.12)

梯度计算公式和公式3.4相同。相对应的Prewitt边缘检测算子的卷积模板如图3.3所示:

图3.3 Prewitt的两个卷积模板

在图3.3中,其中(a)图是Prewitt算子的垂直模板,计算的是y轴方向上的偏导数,它对图像中的垂直边缘有较强的反应;(b)图是Prewitt算子的水平模板,计算的是x轴方向上的偏导数,它对图像中的水平边缘有较强的反应。Prewitt算子的另一种实现方法是,将Prewitt算子扩展到8个方向[6],即边缘样板算子。这些算子样板由理想的边缘子图像构成。依次用边缘样板去检测图像,与被检测区域最相似的样板给出最大值。用这个最大值作为算子的输出值,这样可将边缘像素检测出来。本文实现的是第一种Prewitt算子。同样的,用Prewitt边缘检测算子的卷积模板对整幅图像进行卷积运算,检测出图像的边缘。图3.4 显示了对经典Lena图像的处理效果,其中(a)图是处理之前的效果;(b)图是处理之后的效果。

15