基于matlab的图像边缘检测算法研究(3)

2019-04-16 20:20

2013届毕业设计(论文)

(2)线条(屋顶)变化(函数),即图像强度突然从一个值变化到另一个值,保持一较小行程后又回到原来的值。

边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,边缘是位于两个区域的边界线上的连续像素集合,在边缘处,灰度和结构等信息产生突变。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。

图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。

§2.4 基于一阶微分的边缘检测算子

图像的局部边缘定义为两个强度明显不同的区域之间的过渡,图像的梯度函数即图像灰度变化的速率将在这些过度边界上存在最大值,通过基于梯度算子或导数检测器来估计图像灰度变化的梯度方向,增加图像的这些变化区域,然后对该梯度进行阈值运算,如果梯度值大于某个给定门限,则存在边缘。再将被确定为边缘的像素连接起来,以形成包围着区域的封闭曲线。

一阶导数可以用于检测图像中的一个点是否在斜坡上,二阶导数的符号可以用于判断一个边缘点是在边缘亮的一边还是暗的一边。

两种常见的边缘一阶导数和二阶导数示意图:

[5]

(a) (b) 图2.1 (a)阶跃函数,(b)线条(屋顶)函数(第一行为理论曲线,第二行为实际曲线,第三行对应一阶导数,第四行对应二阶导数)

第 5 页 共 22页

基于matlab的图像边缘检测算法研究

一阶导数的二维等效式:

梯度的幅值:

和方向:

2|G(x,y)|?Gx2?Gy f??Gx????x?G(x,y)??????f?

?Gy????y??(2-1)

(2-2)

?(x,y)?arctan(Gy/Gx)

(2-3)

梯度是灰度f(x,y)在XY坐标方向上的导数,表示灰度f(x,y)在XY坐标方向上的变化率。

用差分来近似梯度

Gx=f(x?1,y)?f(x,y) Gy?f(x,y?1)?f(x,y)

(2-4) (2-5)

§2.4.1 Roberts算子(梯度交叉算子)

Roberts算子是一种利用局部差分算子寻找边缘的算子。

[5]

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

用模板实现:

(2-6)

1 0 0 -1 0 -1 1 0

§2.4.2 Sobel算子

图2.2 Roberts算子的模板

Sobel提出了一种将方差运算与局部平均相结合的方法,即Sobel算子,该算子在以f(x,y)为中心的领域上计算X和Y方向的偏导数。

[6]

第 6 页 共 22页

2013届毕业设计(论文)

Sx={f(x?1,y?1)?2f(x?1,y)?f(x?1,y?1)}?{f(x?1,y?1)?2f(x?1,y)?f(x?1,y?1)}Sy={f(x?1,y?1)?2f(x,y?1)?f(x?1,y?1)}?{f(x?1,y?1)?2f(x,y?1)?f(x?1,y?1)}上式应用了f(x,y)领域的图像强度的加权平均差值。 用模板实现:

(2-7)

(2-8)

-1 0 -2 0 -1 0 1 2 1 1 0 2 0 1 0 -1 -2 -1

§2.4.3 Prewitt算子

Prewitt提出的类似于Sobel的计算偏微分估计值的方法

[7]

图2.3 Sobel算子的3?3模板

Px={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)}Py={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)}用模板实现:

(2-9)

(2-10)

-1 -1 -1 0 0 0 1 1 1 1 0 1 0 1 0 -1 -1 -1 图2.4 Prewitt算子的3?3模板

§2.5 基于二阶微分的边缘检测算子

一阶微分是一种矢量,不但有其大小还有方向,和标量相比,它数据存储量大。另外,在具有相等斜率的宽区域上,有可能将全部区域都当做边缘提取出来。因此,有必要求出斜率的变化率,即对图像函数进行二阶微分运算。

第 7 页 共 22页

基于matlab的图像边缘检测算法研究

图像强度的二阶导数的零交叉点就是找到的边缘点,如图2.5所示:

[7]

图2.5 图像函数的二阶微分 §2.5.1 Laplacian算子

Laplacian算子利用二阶导数信息,具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯度结果不变。使得图像经过二阶微分后,在边缘处产生一个陡峭的零交叉点,根据这个对零交叉点判断边缘。拉普拉斯算子是二阶导数的二维等效式:

[8]

?2f(x,y)?2f(x,y) ?(fx,y)=??x2?y22(2-11)

上式应用Laplacian算子提取边缘的形式,及二阶偏导数的和,是一个标量,其离散计算形式定义为:

?2f?Gx=?x2?x?(f[x?1,y]?f[x,y])??x?f[x?1,y]?f[x,y]???x?x?f[x?2,y]?2f[x?1,y]?f[x,y] (2-12)

这一近似式是以点[x?1,y]为中心的,用x-1替换x,则

第 8 页 共 22页

?2f?f[x?1,y]?2f[x,y]?f[x?1,y] 2?x(2-13)

2013届毕业设计(论文)

同理:

?2f=f[x,y?1]?2f[x,y]?f[x,y?1] 2?y对于一个3?3的区域,经验上被推荐最多的形式,算子表示为:

(2-14)

?010???2??1?41??

??010??(2-15)

§2.5.2 LOG算子

由于梯度算子和拉普拉斯算子都对噪声十分敏感,因而在检测前必须滤除噪声。Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成LOG(Laplacian-Gauss)算法。LOG边缘检测的基本特征为:

(1)平滑滤波器是高斯滤波器;

(2)增强步骤采用二阶导数(二维拉普拉斯函数);

(3)边缘检测判据是二阶导数零交叉点并对应一阶导数的较大峰值; (4)使用线性内插方法在子像素分辨率水平上估计边缘的位置。

该算子首先用高斯函数对图像作平滑滤波处理,然后才使用Laplacian算子检测边缘,因此克服了Laplacian算子抗噪声能力比较差的缺点,但是在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法被检测到。

在实际应用中,常用的LOG算子是5?5的模板:

-2 -4 -4 -4 -2 -4 0 8 0 -4 -4 8 24 8 -4 -4 0 8 0 -4 -2 -4 -4 -4 -2 [9]

图2.6 LOG算子的5?5的模板

该算法的主要思路和步骤如下:

(1)滤波:首先对图像f(x,y)进行平滑滤波,其滤波函数根据人类视觉特性选为高斯函数,即

第 9 页 共 22页


基于matlab的图像边缘检测算法研究(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:细胞中的元素和化合物教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: