好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第六章 边缘检测.docx

23页
  • 卖家[上传人]:s9****2
  • 文档编号:516863998
  • 上传时间:2023-07-03
  • 文档格式:DOCX
  • 文档大小:631.69KB
  • / 23 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • dai第六章边缘检测边缘(edge )是指图像局部强度变化最显著的部分.边缘主要存在于目标与目标、目标与 背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重 要基础.图像分析和理解的第一步常常是边缘检测(edge detection).由于边缘检测十分重要, 因此成为机器视觉研究领域最活跃的课题之一.本章主要讨论边缘检测和定位的基本概念, 并使用几种常用的边缘检测器来说明边缘检测的基本问题.图像中的边缘通常与图像强度或图像强度的一阶导数的不连续性有关.图像强度的不连 续可分为:(1)阶跃不连续,即图像强度在不连续处的两边的像素灰度值有着显著的差异; (2)线条不连续,即图像强度突然从一个值变化到另一个值,保持一个较小的行程后又返回 到原来的值.在实际中,阶跃和线条边缘图像是很少见的,由于大多数传感元件具有低频特 性,使得阶跃边缘变成斜坡型边缘,线条边缘变成屋顶形边缘,其中的强度变化不是瞬间的, 而是跨越一定的距离,这些边缘如图6. 1所示.(a) (b)图6. 1两种常见的边缘,(a)阶跃函数,(b)线条函数.其中第一排为理想信号,第二排对应实际信n对一个边缘来说,有可能同时具有阶跃和线条边缘特性.例如在一个表面上,由一个平 面变化到法线方向不同的另一个平面就会产生阶跃边缘;如果这一表面具有镜面反射特性且 两平面形成的棱角比较圆滑,则当棱角圆滑表面的法线经过镜面反射角时,由于镜面反射分量,在棱角圆滑表面上会产生明亮光条,这样的边缘看起来象在阶跃边缘上叠加了一个线条 边缘.由于边缘可能与场景中物体的重要特征对应,所以它是很重要的图像特征。

      比如,一 个物体的轮廓通常产生阶跃边缘,因为物体的图像强度不同于背景的图像强度.在讨论边缘算子之前,首先给出一些术语的定义:边缘点:图像中具有坐标['•”]且处在强度显著变化的位置上的点.边缘段:对应于边缘点坐标[,”]及其方位0,边缘的方位可能是梯度角.边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法.轮廓:边缘列表,或是一条表示边缘列表的拟合曲线.边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向来 排序.边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程.边缘点的坐标可以是边缘位置像素点的行、列整数标号,也可以在子像素分辨率水平上 表示.边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的输出 图像的坐标系上表示,因为滤波过程可能导致图像坐标平移或缩放.边缘段可以用像素点尺 寸大小的小线段定义,或用具有方位属性的一个点定义.请注意,在实际中,边缘点和边缘 段都被称为边缘.由边缘检测器生成的边缘集可以分成两个子集:真边缘集和假边缘集.真边缘集对应场 景中的边缘,假边缘集不是场景中的边缘.还有一个边缘子集,即场景中漏检的边缘集.假 边缘集称之为假阳性(false Positive),而漏掉的边缘集则称之为假阴性(false Negative).边缘连接和边缘跟踪之间的区别在于:边缘连接是把边缘检测器产生的无序边缘集作为 输入,输出一个有序边缘集;边缘跟踪则是将一幅图像作为输入,输出一个有序边缘集.另 外,边缘检测使用局部信息来决定边缘,而边缘跟踪使用整个图像信息来决定一个像素点是 不是边缘.6.1梯度「G [fx=5 xGL y」L 5y」G(x, y)=边缘检测是检测图像局部显著变化的最基本运算.在一维情况下,阶跃边缘同图像的一 阶导数局部峰值有关.梯度是函数变化的一种度量,而一幅图像可以看作是图像强度连续函 数的取样点阵列.因此,同一维情况类似,图像灰度值的显著变化可用梯度的离散逼近函数 来检测.梯度是一阶导数的二维等效式,定义为向量有两个重要的性质与梯度有关:(6. 1) (1)向量G (x, y)的方向就是函数f (x, y)增大时的最大变化率方向;(2)梯度的幅值由下式给出:I G (x, y) I = V;G 2 + G 2 (6. 2)在实际应用中,通常用绝对值来近似梯度幅值: y| G (x ,y) | = |g |+ G | (6. 3)或| G (x ,y) | 罚 max( G , G ) (6. 4)由向量分析可知,梯度的方向定义为 x 'a (x ,y) = arctan( G / G ) (6. 5)其中a角是相对x轴的角度. 'x注意梯度的幅值实际上与边缘的方向无关,这样的算子称为各向同性算子 (isotropicoperators).对于数字图像,方程6. 1的导数可用差分来近似.最简单的梯度近似表达式为G = f [i,j + 1] - f [i,j]x (6. 6)G = f [ i, j ] - f [ i + 1, j ] ,请注意j对应于x轴方向,而i对应于负y轴方向.这些计算可用下面的简单卷积模板来完 成(6. 7)在计算梯度时,计算空间同一位置x和y处的真实偏导数是至关重要的.然而采用上面阶差分模板(而不用1x 2或2 x 1模板)来求x和y的偏导数:Gx公式计算的梯度近似值G,和G并不位于同一位置,G,实际上是内插点[i, j + 1/2]处的梯 度近似值,Gy是内插点"+ 1/2, j ]处的梯度近似值.由于这个缘故,人们常常使用2 x 2 一(6. 8)用上式计算x和y方向梯度的位置是相同的,这一点位于内插点[i + 1/2, j + 1/2]处,即在2 x 2邻域的所有四个像素点之间.不过这种计算可能会导致一些混淆,所以,通常用 3 x 3邻域计算梯度值.这一方法将在下一节讨论.6. 2边缘检测算法边缘检测算法有如下四个步骤:滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很 敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能.需要指出, 大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降 低噪声之间需要折衷.增强:增强边缘的基础是确定图像各点邻域强度的变化值.增强算法可以将邻域(或 局部)强度值有显著变化的点突显出来.边缘增强一般是通过计算梯度幅值来完 成的.检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是 边缘,所以应该用某种方法来确定哪些点是边缘点.最简单的边缘检测判据是梯 度幅值阈值判据.定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估 计,边缘的方位也可以被估计出来.在边缘检测算法中,前三个步骤用得十分普遍。

      这是因为大多数场合下,仅仅需要边缘 检测器指出边缘出现在图像某一像素点的附近,而没有必要指出边缘的精确位置或方向.边 缘检测误差通常是指边缘误分类误差,即把假边缘判别成边缘而保留,而把真边缘判别成假 边缘而去掉.边缘估计误差是用概率统计模型来描述边缘的位置和方向误差的.我们将边缘 检测误差和边缘估计误差区分开,是因为它们的计算方法完全不同,其误差模型也完全不同.最近的二十年里发展了许多边缘检测器,这里仅讨论常用的几种边缘检测器.6. 2. 1 Roberts 算子Roberts交叉算子为梯度幅值计算提供了一种简单的近似方法:G[i, j] = If [i, j] - f [i + 1, j + 1] + If [i + 1, j] - f [i, j + 1] (6. 9)用卷积模板,上式变成:G[i, j] = Ig 1+ G | (6. 10)其中G和G由下面的模板计算:Gy(6. 11)同前面的2 x 2梯度算子一样,差分值将在内插点[/ + 1/2, j + 1/2]处计算.Roberts算 子是该点连续梯度的近似值,而不是所预期的点[九j]处的近似值.Roberts边缘检测器的试 验结果见图6.3.6. 2. 2 Sobel 算子正如前面所讲,采用3 x 3邻域可以避免在像素之间内插点上计算梯度.考虑一下图6.2中所示的点[/, j ]周围点的排列.Sobel算子也是一种梯度幅值,M = \.'s2 + s2其中的偏导数用下式计算: X ys. = (a + ca + a ) - (a + ca + a 6)s = (a + ca + a ) 一 (a + ca + a )y 0 1 2 6 5 4(6.12)(6.13)其中常数c = 2和其他的梯度算子一样,s和s可用卷积模板来实现:匚0 2□□□□□□sy(6. 14)请注意这一算子把重点放在接近于模板中心的像素点.用.Sobel算子是边缘检测器中最常用的算子之一.图6.3和图6.4表明了这一算子的作二[irjndaa0\654图6. 2用于说明Sobel算子和Prewitt算子的邻域像素点标记6. 2. 3 Prewitt 算子Prewitt算子与Sobel算子的方程完全s =□xaJ□样,s111000一 1一 1一 1只是常量c=1.所以(6. 15)请注意,与Sobel算子不同,这一算子没有把重点放在接近模板中心的像素点.这种边 缘检测器的性能也示意在图6.3和图6.4中.6. 2. 4各种算法比较现在来比较一下上面讨论过的边缘检测器.我们将按照本节开头所提出的滤波、增强和检测这三个步骤,来比较各种方法.第四步定位将不讨论.首先给出在忽略滤波步骤情况下 Roberts. Sobel和Prewitt边缘检测方法实验结果,如图6.3所示.对滤波后的图象进行边缘 检测的结果见图6.4,其中滤波器为前一章介绍的7 7高斯滤波器,梯度幅值的计算见方程 6.3.比较图6.3和图6.4可以发现,由于噪声影响,一些假边缘也被检测出来了.图6.2用于边缘检测的测试图像(a)原始图像 (b)7x7高斯滤波的图像图6. 3各种边缘检测器对未经滤波的图像(a)进行边缘检测的比较.(c) Roberts 交叉算子.(d) Sobel 算子.(e) Prewitt 算子.图6. 4各种边缘检测器对滤波后的图像(图6.3(b))进行边缘检测的结果.(a) Roberts 交叉算子.(b) Sobel 算子.(c) Prewitt 算子6. 3二阶微分算子前面讨论了计算一阶导数的边缘检测器,如果所求的一阶导数高于某一阈值,则确定该 点为边缘点.这样做会导致检测的边缘点太多(注意一下图6. 3和图6. 4中阈值化后的粗 线).一种更好的方法就是求梯度局部最大值对应的点,并认定它们是边缘点,如图6. 5所 示.在图6.5中,若用阈值来进行边缘检测,则在a和b之间的所有点都被记为边缘点.但 通过去除一阶导数中的非局部最大值,可以检测出更精确的边缘.一阶导数的局部最大值对 应着二阶导数的零交点这意味着在边缘点处有一阶导数的峰值,同样地,有二阶导数的零交 叉点.这样,通过找图像强度的二阶导数的零交叉点就能找到边缘点.在二维空间,对应二阶导数有两种算子:拉普拉斯算子和二阶方向导数.图6. 5用阈值进行边缘检测和用二阶导数的零交点进行边缘检测示意图.6・3. 1 拉普拉斯算子平滑过的阶跃边缘二阶导数是一个在边缘点处过零的函数(见图6. 5).拉普拉斯算子是 二阶导数的二维等效式.函数f (x,们的拉普拉斯算子公式为V 2 f = - +^~ (6. 16)d x 2 d y 2使用差分方程对x。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.