图像处理中的边缘提取算法及实现毕业设计论文(编辑修改稿)内容摘要:

图像边缘检测和计算机视觉都是新兴学科分支,近几十年来,取得了许多重大的成果。 随着研究的深入和应用的需要,新概念、新思想、新方法 不断 产生,它们正朝着智能化、系统化的方向发展 [5]。 作为图像边缘检测和计算机视觉最基本的技术 —— 图像边缘提取技术,也突破了其狭义 的概念,成为一个内容丰富的领域。 本文 写 作的目的是探索和研究 几种 经典的图像边缘提取算 法。 利用计算机进行图像边缘检测有两个目的:一是产生更适合人观察和识别的图像;二是希望能由计算机自动识别和理解图像。 无论为了哪种目的,图像边缘检测中关键的一步就 是对包含有大量信息的图像进行分解。 图像的边缘是图像的最基本特征。 所谓边缘(或边沿)是指其周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。 边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间, 因此,它是图像分割所依赖的重要特征。 在通常情况下,我们可以将信号中的 奇异点和突变点认为是图像中的边缘点,其附近灰度的变化情况可从它相邻像素灰度分布的梯度来反映。 根据这一特点,提出了多种边缘检测算子:如 Robert 算子、 Sobel 算子、 Prewitt 算子、 LoG 算子, Canny 算子等。 这些方法多是以待处理像素为中心的邻域作为进行灰度分析的基础,实现对图像边缘的提取并已经取得了较好的处理效果。 图像的边缘是待识别类型之间的界线,它是指图像中像素单元灰度有阶跃变化或屋顶状变化的那些像素单元的集合 [6]。 边缘检测在图像分割、纹理特征提取、形状特征提取和图像识别等方面起着重要 的作用。 图像边缘对图像识别和计算机分析十分有用 , 边缘能勾划出目标物体,使观察者一目了然 ; 边缘蕴含了丰富的XXX本科毕业设计 7 内在信息,是图像识别中抽取图像特征的重要属性。 从本质上说,图像边缘是图像局部特性不连续性的反应,它标志着一个区域的终结和另一个区域的开始。 边缘提取首先检出图像局部特性的不连续性,然后再将这些不连续的边缘像素连成完备的边界。 图像中灰度变化剧烈的区域即强度的非连续性对应着边缘。 边缘提取就是既要检测出强度的非连续性,又能确定它们在图像中的精确位置。 在图像中边缘区域的灰度在空间上的变化形式一般可分为三个类型 : 阶跃 型、房顶型和凸缘型,如图 31 所示 : 图 31 三个类型 边缘 检测与提取 过程 从人的直观感受来说,边缘对应于物体的几何边界。 图像上灰度变化剧烈的区域比较符合这个要求,我们一般会以这个特 征来提取图像的边缘, 但在遇到包含纹理的图像上,如,图像中的人穿 了黑白格子的衣服,我们往往不希望提取出来的边缘包括衣服上的方格, 这就又涉及到纹理图像的处理等 方法。 一般认为边缘提取是要保留图像的灰度变化剧烈的区域,这从数学上 看 ,最直观的方法就是微分 (对于数字图像来说就是差分 ),在信号处理的角度来看, 也可以说是用高通滤波器,即保留高频信号。 用于图像识别的边缘提取往往需要输出的边缘是二值图像,即只有黑白两个灰度的图像,其中一个灰度代表边缘,另一个代表背景。 此外,还需要把边缘细化成只有一个像素的宽度。 图 像 边缘检测的基本步骤 : 1) 滤波 : 边缘检测主要基于导数计算, 会 受 到 噪声 的 影响 ,可以通过设计滤波器来降低噪声,但 滤波器在降低噪声的同时也 会 导致边缘 精 度的损失。 阶跃型 房顶型 突圆型 图 边缘灰度变化 图像处理中的边缘提取算法及实现 8 2) 增强 : 增强算法将邻域中灰度有显著变化的点突出显示。 一般通过计算梯度幅值 来 完成。 3) 检测 : 在有些图像中梯度幅值较大的并不是边缘点。 最简单的边缘检测是梯度幅值阈值判定。 4) 定位 : 精确确定边缘的位置。 特征提取作为图像边缘检测的一个重要内容,发展了众多的方法。 这些方法经过实践的检验,成为了经典的内容。 经典的边缘检测算子包括 : Roberts 算子 、Prewitt 算子 、 Sobel 算子 、 Log 算子 、 Canny 算子 等 [7], 这些经典的边缘提取算子在使用时都是使用预定义的边缘模型去匹配。 边缘 检测与提取 常用 算法 边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线 ,也就是 提取 图像中灰度发生急剧变化 区域 的 边界。 图像灰度的变化情况可以用图像灰度分布的 梯度来反映,因此 可以用局部图像微分技术来获得边缘检测算子。 经典的边界提取技术大都基于微分运算, 首先通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界。 Roberts 边缘算子 Roberts 算子是一种利用局部差分算子寻找边缘的算子,由下式给出: g(x,y)={[ ),( yxf )1,1(  yxf ]2 +[ ),( yxf )1,1(  yxf ]2 } 21 其中 f(x,y)是具有整数像素坐标的输入图像,平方根运算使该处理类似于在人类视觉系统中发生的过程。 Roberts 算子边缘定位精确度比较高 ,但是对噪声敏感, 容易丢失一部分边缘,因此,该算子 适用于边缘明显而且噪声较少的图像检测 ,在应用中经常用 Roberts算子来提取道路。 XXX本科毕业设计 9 Sobel 边缘算子 Sobel 边缘算子的卷积 核 如图 32 所示 , 图像中的每个像素都用这两个核做卷积, 这两个核分别对垂直边缘和水平边缘响应最大, 两个卷积的最大值作为该点的输出位。 Sobel 算子认为邻域的像素对当前像素产生的影响不是等价的 ,所以距离不同的像素具有不同的权值,对算子结 果产生的影响也不同。 该算子对噪声具有一定的抑制能力,但不能完全排除检测结果中出现虚假边缘,虽然该算子的定位效果不错,但检测的边缘容易出现多像素宽度。 Prewitt 边缘算子 Prewitt 边缘算子的卷积核如图 33 所示,图像中的每个像素都用 这两个核做卷积,取最大值作为输出,从而 产生一幅边缘幅度图像。 Prewitt 算子在一个方向求微 分,而在另一个方向求平均,因而对噪声相对不敏感,有抑制噪声作用, 但是像素平均相当于对图像的低通滤波,所以 Prewitt算子对边缘的定位不如 Roberts 算子。 1 2 1 0 0 0 1 2 1 1 0 1 2 0 2 1 0 1 图 32 Sobel边缘算子 1 1 1 0 0 0 1 1 1 图 33 Prewitt边缘算子 1 0 1 1 0 1 1 0 1 图像处理中的边缘提取算法及实现 10 Log边缘算子 由于 利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感,所以 要在边缘检测前滤除噪声, 为此,马尔( Marr)和希尔得勒斯( Hildreth)根据人类视觉特性提出了一种 边缘检测的方法,该方法将高 斯滤波和 拉普拉斯检测算子结合在一起进行 边缘检测的方法,故称为 Log( Laplacian of Gassian )算法,也称之为 高斯 拉普拉斯 算子 , 该算法的主要思路和步骤如下: ( 1) 滤波:首先对图像 f(x,y)进行平滑滤波,其滤波函数 根据人类视觉特性选为 高斯函数,即:   )(2 1e x p2 1),( 2222 yxyxG  其中, G( x, y)是一个圆对称函数,其平滑的作用是可通过  来控制的。 将图像 ),( yxG 与 ),( yxf 进行卷积,可以得到一个平滑的图像,即: ),(*),(),( yxGyxfyxg  ( 2)增强:对 平滑图像 ),( yxg 进行 拉普拉斯运算,即:  ),(*),(),( 2 yxGyxfyxh  ( 3) 检测:边缘检测 判据是 二阶导数的零交叉点(即 0),( yxh 的点)并对应一阶导数的较大峰值。 这种方法的特点是图像首先与 高斯滤波器进行卷积,这样既平滑了 图像又降低了噪声,孤立的噪声点和较小的结构 组织将被滤除, 但是由于平滑会造成图像边缘的延伸,因此 边缘检测器只考虑那些具有局部梯度最大值的点为边缘点。 这一点可以用 二阶导数的零交叉点来实现。 拉普拉斯函数用二维二阶导数的近似,是因为它是一种无方向算子。 在实际应用中为了避免检测出非显著边缘,应选择 一阶导数大于某一阈值的零交叉点作为边缘点。 由于对平滑图像 ),( yxg 进行拉普拉斯运算可等效为 ),( yxG 的拉普拉斯运算与 ),( yxf 的卷积,故上式变为: ),( yxh = ),(*),( 2 yxGyxf  式中 ),(2 yxG 称为 LOG 滤波器,其为: ),(2 yxG = 22xG + 22yG =   121 2224  yx    22221ex p yx XXX本科毕业设计 11 这样就有两种方法求图像边缘: ①先求图像与高斯 滤波器的卷积 ,再求卷积的拉普拉斯的变换,然后再进行过零判断。 ②求高斯 滤波器的拉普拉斯的变换,再求与 图像的 卷积,然后再进行过零判断。 这 就是马尔和希尔得勒斯提出的边缘检测算子(简称 MH 算子 ) ,又称为墨西哥草帽算子。 高斯 拉普拉斯算子把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平滑 掉噪声,再进行边缘检测,所以效果更好。 Canny边缘算子 坎尼算子是一类最优的边缘算子,它在许多图像领域得到了广泛的应用。 该算子的基本思想是: 先对处理的图像选择一定的高斯滤波器进行平滑处理,抑制图像的噪声, 然后采用一种 称之为“非极值抑制”的技术,细化平滑后的图像梯度幅值矩阵,寻找图像中的可能的边缘点,最后利用双门限检测通过双阈值递归寻找图像的边缘点,实现边缘提取。 Canny 方法也使用拉普拉斯算子,该方法与其他边缘检测方法不同之处在于,它使用 2 种不同的阈值分别检测强边缘和弱边缘,并且仅当弱边缘与强边缘相连时才将弱边缘包含在输出图像中,因此这种方法容易检查出真正的弱边缘。 Canny 边缘检测算法 : step1:用高斯滤波器平滑图象; step2:用一阶偏导的有限差分来计算梯度的幅值和方向; step3:对梯度幅值进行非极大 值抑制; step4:用双阈值算法检测和连接边缘。 其数学描述如下: step1: 二维为高斯函数为: ),( yxG = 221    2 222exp  yx 图像处理中的边缘提取算法及实现 12 在某一方向 n 上是 ),( yxG 的一阶方向导数为: nG = nG = n▽ G n=  sincos G =yGxG 式中: n 式方向矢量, ▽ G 是梯度 矢量。 将图像 ),( yxf 与 nG 作卷积,同时改变 n 的方向, nG * ),( yxf 取得最大值时的n 就是正交于检测边缘的方向。 step2: XE = *xG ),( yxf , yE =yG* ),( yxf ),( yxA = 22 YX EE  YXEEArc tan ),( yxA 反映了图像 (x,y)点处的边缘强度,  是图像 (x,y)点处的法向矢量。 step3: 仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。 解决方法:利用梯度的方向。 图 36 非极大值抑制 四个扇区的标号为 0 到 3,对应 3*3 邻域 的四种可能组合。 在每一点上,邻域的中心像素 M与沿着梯度线的两个像素相比。 如果 M的梯度值不比沿梯度线的两个相邻像素梯度值大,则令 M=0。 step4: 减少假边缘段数量的典型方法是对 G(x,y)使用一个阈值。 将低于阈值的所有值赋零值。 理论上是可行的, 问题是如何选取阈值。 解决方法:双阈值算法 进行 边缘 判别和 连接边缘。 首先进行 边缘判别 , 凡是 边缘 强度大于高阈值的一定是 边缘 点;凡是 边缘 强XXX本科毕业设计 13 度小于低阈值的一定不是 边缘 点;如果 边缘 强度大于低阈值又小于高阈值,则看这个像素的邻接像素中有没有超过高阈值的 边缘 点,如果有,它就是 边缘 点,如果没有,它就不是 边缘 点。 然后进行 边缘 连接, 双阈值算法对非极大值抑制图像作用两个阈值 τ1 和τ2 ,且 2τ1≈τ2 ,从而可以得到两个阈值边缘图像 G1(x,y)和 G2(x,y)。 由于G2(x,y)使用高阈值得到,因而含有很。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。