2760.影像地物边缘提取算法及提取精度比较毕业论文.doc
目 录摘要第一章 引论.11.1研究的目的和意义.11.2国内外的现状和发展趋势.21.3主要研究内容.21.4本文内容安排.3第二章 边缘检测的基本理论.42.1 经典边缘检测的基本方法42.2 Roberts 算子.62.3 Sobel 算子.72.4 Prewitt 算子.82.5 kirsch算子.92.6 拉普拉斯算子.102.7 LOG 算法.132.8 Canny 边缘检测器.152.9 SUSAN算子.162.10 主要特性归类比较.18第三章 不同边缘检测算子对直线提取精度的影响研究.203.1 边缘检测与直线提取的基本方法.203.2 边缘检测对直线提取精度影响实验设计及研究结果比较 21第四章 结论.32查阅的主要文献.33致谢.34致谢34 摘要人类获取的绝大部分信息来源于图像信息,而在图像信息中又以边界信息最为丰富。图像的大部分主要信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,是图像中灰度变化比较剧烈的地方,也即我们通常所说的信号发生奇异变化的地方。边界的丰富信息也决定了它可以用多种方法来捕捉,那就是应用边缘提取算法。目前边缘算法的种类多种多样,那么我们应该选择哪种算法来提取边缘呢?这就是文本所研究的内容。本文研究了各种流行的边缘提取算子的理论,并对它们对于图像提取的相同特点进行了总结。然后设计了一个实验,研究各个边缘提取算法对所设计的边缘的提取的精度的影响。最后对各个算子的精度进行了总结。关键词:图像处理;边缘检测;微分算子;SUSAN算子AbstractImage is the sourc of information that human get.And the borderline has the most information in the image.And it represents that the character of the part of the image is discontinuity.It is the region that gray-scale value acuitily changes.The abundance informations of the borderline make that we have many methods to catch it.And the egde-detecting operators is the method we use.But there are many kinds of egde-detecting operator ,which one should we choose?This paper is the answer of the question.It contains the theory of many kinds of fashion egde-detecting operator.And it sums up the homology-character of the fashion egde-detecting operators.Then,we design a experiment to research the precisions of the fashion egde-detecting operators.At last,summarize the precisions of theseegde-detecting operators.Key words:image processing;edge detection;differential operator;SUSAN operator 第一章 引 论1.1研究的目的和意义:人类获取的绝大部分信息来源于图像信息,而在图像信息中又以边界信息最为丰富。它能够传递和表达物体的空间几何信息,即可以判定出物体的大小、形状、类型,甚至地理位置。图像的大部分主要信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,是图像中灰度变化比较剧烈的地方,也即我们通常所说的信号发生奇异变化的地方。奇异信号沿边缘走向的灰度变化剧烈,通常我们将边缘划分为阶跃状和屋顶状两种类型(如图 1-1所示)。阶跃边缘中两边的灰度值有明显的变化;而屋顶状边缘位于灰度增加与减少的交界处。在数学上可利用灰度的导数来刻画边缘点的变化,对阶跃边缘、屋顶状边缘分别求其一阶、二阶导数。图 1.1 阶跃性边缘和屋顶状边缘处一阶及二阶导数变化规律(其中第一排为理想信号,第二排对应实际信号)边界的丰富信息也决定了它可以用多种方法来捕捉,它在图像中表现为强度的突变形式。而把边界从图像中提取出来之后,目标物体的信息能够直观地被人们所了解和利用,对于用计算机处理目标物体则更为有利。正因为如此,人们研究出了很多边缘提取算法,比如高斯拉普拉斯算子,罗伯特算子,Sobel算子,Prewitt算子,Canny算子,梯度模算子。 除了这些经典的算子,由于各个专业领域里的特殊需要,又产生了多种专业化的算法。如在航测领域,除了提取边界,还要求有高精度的定位,这就催生出了如Medioni-Yasumoto定位算子,基于小面元模型的定位算子,矩不变定位算子,Wong-Trinder圆点定位算子,Mikhail定位算子,Forstner定位算子,高精度角点与直线定位算子等这些高精度的定位算子。既然有这么多种边缘提取算法,那么每种算法究竟有什么特点,它们的精度如何,提取速度如何,可靠性和自适应性又如何呢?这些问题关系到算法的应用,只有了解了各种算法的特性,才能让这些科研成果更好地为我们的生产实践工作服务。1.2国内外的现状和发展趋势:边缘检测是数字图像处理中的重要内容。研究边缘检测的文章十分多。1959年,文献上最早提到边缘检测。1965年L.G.Roberts最早开始系统研究边缘检测。从那以后每年都会出现很多关于边缘检测的文章。边缘检测的重要的文章大都发表在IEEE Trans.On Pattern Analysis and Machine Intelligence,CVGIP:Image Processing,IEEE Trans.On Image Processing(1990年创刊),Journal of the ACM等上。经过多年的发展,边缘检测的方法主要有了一下的几个大的方向:第一种是检测梯度的最大值,如Roberts算子、Prewitt算子和Sobel算子等就属于这一类。第二种是检测二阶导数的零交叉点。第三种,统计型方法。第四种,小波多尺度边缘检测。 当然还有其它一些方法,比如说模糊数学的方法,最近提出来的利用边缘流(Edgeflow)来检测边缘,基于积分变换的边缘检测方法,还有基于张量的边缘检测方法等等。在测绘领域中,由于计算机和各种数据采集设备的飞速发展,对于数据的采集和处理已经进入了数字化时代。这就使得如航片,卫片等有了对它们使用边缘提取的基础。运用边缘提取的办法对航片等进行处理,可以极大的降低测绘生产人员的劳动强度,缩短了生产周期,提高生产效率。但是由于测绘行业的特殊要求(除了提取边界,还要求有高精度的定位),这就使得边缘提取在测绘专业中要有新的特点,于是人们研究出了高精度的定位算子,如Medioni-Yasumoto定位算子,基于小面元模型的定位算子,矩不变定位算子,Wong-Trinder圆点定位算子,Mikhail定位算子,Forstner定位算子,高精度角点与直线定位算子等。1.3主要研究内容: 经过资料的查阅和思考,为了更好的研究这个题目,本文研究内容为:1.研究 Log算子,Roberts算子,Sobel算子,Prewitt算子,Canny算子,Laplace算子,Kirsch算子和Susan算子。2.运用VC+编程实现Log算子,Roberts算子,Sobel算子,Prewitt算子,Laplace算子,Canny算子,Kirsch算子和Susan算子。3.实现一个直线拟合算法,并运用实现的拟合算法对上述各种边缘提取算法提取过的点进行拟合。4.对计算机拟合直线的精度进行评定。其基本原理如下: Y 0 X图1.2 实验原理图如图1-2所示,()是原有的需要进行边缘提取的一直线,()是对进行提取之后的各点的拟合直线。上的各点的Y值相对于上的各点的Y值之间有一个差值。对这个求中误差是本文评定各种算法的精度的工具: 中误差越小,说明算法的精度越高.为了更为准确的反应其精度比较,采用正方型模型,对其各边进行上述比较。 1.4本文内容安排:第一章中,对图像边缘检测作了一个概要的说明,并说明了进行图像边缘检测的重要意义。第二章中,系统介绍了比较经典的图像边缘检测算子及其具体的实现原理。 第三章中,运用多种边缘提取算子对一已知正方形的边缘进行提取。 第四章中,进行精度分析比较,最后给出结论。第二章 边缘检测的基本理论2.1 经典边缘检测的基本方法图像的边缘是指其周围像素灰度、颜色或纹理有阶跃变化或屋顶变化的像素点的集合,是由于某些物理性质和表面特征、几何形状以及反射率改变的结果 。图像的边缘提取在计算机视觉系统的初级处理中具有关键的作用。边缘可以分为阶梯状边缘(StepEdge)、脉冲边缘(PulseEdge)和屋顶状边缘(RoofEdge),经典的边缘提取算法是利用边缘处的一阶导数取极值、二阶导数在阶梯状边缘处呈零交叉或者在屋顶状边缘处取极值的规律(如图1所示),即现在常见的微分算法;此外还有表面拟合法和基于动态规划的边缘提取方法 。随着数学和人工智能技术的发展,也出现了许多新的边缘提取算法和技术,如数学形态学方法、小波变换方法、神经网络法、IFS边缘检测、基于影像整体线索法、Snake模型法 等。另外针对不同特点的图像,还出现了不同的检测方法,如针对纹理图像的分形和Kohonen神经网络方法 。本文中研究的是经典边缘检测算子和目前效果较好的SUSAN算子。我们知道,边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。我们将边缘定义为图像中灰度发生急剧变化的区域边界。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。边缘检测算法有如下四个步骤(其过程如图 2-1 所示):原始图像平滑图像梯度或含过零点图像边界点滤 波增强检 测 图 2.1 图像边缘检测流程滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出,大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降低噪声之间需要折衷。增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。边缘增强一般是通过计算梯度幅值来完成的。检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。在边缘检测算法中,前三个步骤用得十分普遍。这是因为大多数场合下,仅仅需要边缘检测器指出边缘出现在图像某一像素点的附近,而没有必要指出边缘的精确位置或方向。边缘检测误差通常是指边缘误分类误差,即把假边缘判别成边缘而保留,而把真边缘判别成假边缘而去掉。边缘估计误差是用概率统计模型来描述边缘的位置和方向误差的。我们将边缘检测误差和边缘估计误差区分开,是因为它们的计算方法完全不同,其误差模型也完全不同。边缘检测是检测图像局部显著变化的最基本运算在一维情况下,阶跃边缘同图像的一阶导数局部峰值有关梯度是函数变化的一种度量,而一幅图像可以看作是图像强度连续函数的取样点阵列因此,同一维情况类似,图像灰度值的显著变化可用梯度的离散逼近函数来检测梯度是一阶导数的二维等效式,定义为向量 (211)有两个重要的性质与梯度有关:(1) 向量 G(x, y) 的方向就是函数f (x, y) 增大时的最大变化率方向; (2) 梯度的幅值由下式给出: (212) 在实际应用中,通常用绝对值来近似梯度幅值: (213)或 (214)由向量分析可知,梯度的方向定义为 (215)其中 角是相对 x轴的角度注意梯度的幅值实际上与边缘的方向无关,这样的算子称为各向同性算子(isotropic operators)对于数字图像,方程 2.1.1 的导数可用差分来近似最简单的梯度近似表达式为 (216)请注意 j对应于 x轴方向,而 i 对应于负 y轴方向。这些计算可用下面的简单卷积模板来完成: (217)在计算梯度时,计算空间同一位置 x和 y处的真实偏导数是至关重要的。然而采用上面公式计算的梯度近似值 Gx和 Gy 并不位于同一位 置 , Gx 实 际 上 是 内 插 点 i, j +1/ 2处 的 梯 度 近 似 值 , Gy 是 内 插 点i +1/ 2, j 处的梯度近似值由于这个缘故,人们常常使用 2× 2 一阶差分模板(而不用 1×2或 2×1 模板)来求 x和 y的偏导数: -11-11 -11 -11 用上式计算 x 和 y 方向梯度的位置是相同的,这一点位于内插点 i +1/2, j +1/2处,即在 2×2邻域的所有四个像素点之间。根据以上基本理论,在最近的二十年里发展了许多边缘检测器,下面将讨论常用的几种边缘检测器。2.2 Roberts 算子由 Roberts 提出的算子是一种利用局部差分算子寻找边缘的算子,它在 2×2 邻域上计算对角导数, (221)Gi, j 又称为 Roberts 交叉算子。在实际应用中,为简化运算,用梯度函数的 Roberts 绝对值来近似: (222)用卷积模板,上式变成: (223)其中Gx和Gy 由下面的模板计算:1 0 0 1 -1 00 -1图 2.2 Robert 边缘检测算子差分值将在内插点处计算。Roberts 算子是该点连续梯度的近似值,而不是所预期的点处的近似值。由上面两个卷积算子对图像运算后,代入(2.1.3)式,可求得图像的梯度幅度值 Gi, j,然后选取适当的门限 TH,作如下判断:Gi, j > TH ,i, j 为阶跃状边缘点,Gi, j为一个二值图像,也就是图像的边缘。2.3 Sobel 算子考虑到采用 3×3邻域可以避免在像素之间内插点上计算梯度,设计出下图 2-4 中所示的点 i, j 周围点的排列。Sobel 算子即是如此排列的一种梯度幅值, (231)其中 (232)其中的偏导数用下式计算: (233)其中常数 c = 2和其他的梯度算子一样, 和可用卷积模板来实现:-1 -2 -1 -1 -2 -10 0 0 0 0 01 2 1 1 2 1图 2.3 Sobel 边缘检测算子请注意这一算子把重点放在接近于模板中心的像素点。Sobel 算子是边缘检测器中最常用的算子之一。 图 2.4 用于说明 Sobel 算子和 Prewitt 算子的邻域像素点标记Sobel 算子很容易在空间上实现,Sobel 边缘检测器不但产生较好的边缘检测效果,同时,因为 Sobel 算子引入了局部平均,使其受噪声的影响也比较小。当使用大的邻域时,抗噪声特性会更好,但是这样做会增加计算量,并且得到的边缘也较粗。Sobel 算子利用像素点上下、左右相邻点的灰度加权算法,根据在边缘点处达到极值这一现象进行边缘检测。因此 Sobel 算子对噪声具有平滑作用,提供较为精确的边缘方向信息,但是,正是由于局部平均的影响,它同时也会检测出许多伪边缘,且边缘定位精度不够高。所以,当对精度要求不是很高时,这是一种较为常用的边缘检测方法。2.4 Prewitt 算子Prewitt 算子与 Sobel 算子的方程完全一样,只是常量 c=1。所以其卷积模板为图 2-5 所示:-1 -1 -1 -1 0 10 0 0 -1 0 11 1 1 -1 0 1图 2.5 Prewitt 边缘检测算子由于常量 c 的不同,这一算子与 Sobel 算子不同的地方在于没有把重点放在接近模板中心的像素点。当用两个掩模板(卷积算子)组成边缘检测器时,通常取较大的幅度作为输出值。这使得它们对边缘的走向有些敏感。取它们的平方和的开方可以获得性能更一致的全方位的响应。这与真实的梯度值更接近。另一种方法是,可以将 Prewitt算子扩展成八个方向,即边缘样板算子。这些算子样板由理想的边缘子图构成。依次用边缘样板去检测图像,与被检测区域最为相似的样板给出最大值。用这个最大值作为算子的输出值 Pi, j,这样可将边缘像素检测出来。我们定义 Prewitt 边缘检测算子模板如下: 1方向 2方向 3方向 4方向 5方向 6方向 7方向 8方向图 2.6 Prwitt 边缘检测算子模板八个算子样板对应的边缘方向如下图所示:2 方向1 方向8 方向3 方向中心点7 方向4 方向5 方向6 方向表2-1 八个算子样板对应的边缘方向2.5 kirsch算子Kirsch算子是一种方向模板算子,这些算子模板由理想的边缘子图像构成。图2-8为Kirsch算子模板,与之对应的方向如图2-8所示,把每块模板与图像3*3区域匹配,把处在模板内图像的每一点乘以模板内的相应方格中批示的数字,然后把结果相加,其中最大输出值就作为图像中心的值,即边缘要素的强度,得到最大输出值的方向就是中心点的方向,如与图像匹配后得到的值最大,到就是此点的方向。如此继续进行匹配操作,就求得与模板最佳匹配的图像。5 5 5 5 5 -3 5 -3 -3 -3 -3 -3-3 0 -3 5 0 -3 5 0 -3 5 0 -3-3 -3 -3 -3 -3 -3 5 -3 -3 5 5 -3 -3 -3 -3 -3 -3 -3 -3 -3 5 -3 5 5-3 0 -3 -3 0 5 -3 0 5 -3 0 55 5 5 -3 5 5 -3 -3 5 -3 -3 -3 图2.7 Kirsch算子的八个模板图2.8 Kirsch算子的八个模板所代表的方向设为图像中当前点处的灰度值(记为),为经Kirsch算子模板匹配后的点处的灰度值,为点四周八个点处的灰度值:,是模与子图像作卷积后的结果,即 (251)则。 由上式知,用Kirsch算子完成对一幅M*N大小的灰度图像的边缘检测,需进行次加减操作喝次的乘法操作。由此可见其计算量是较大的,而且随着图像数据的增大,矛盾越明显。2.6 拉普拉斯算子拉普拉斯算子是二阶导数的二维等效式。函数 f (x, y)的拉普拉斯算子公式为: (261)使用差分方程对 x 和 y 方向上的二阶偏导数近似如下: (262) 这一近似式是以点 i, j +1为中心的。用 j -1替换 j ,得到 (263)它是以点i, j 为中心的二阶偏导数的理想近似式,类似地, (264)把这两个式子合并为一个算子,就成为下面能用来近似拉普拉斯算子的模板: (265)有时希望邻域中心点具有更大的权值,比如下面的模板就是一种基于这种思想的近似拉普拉斯算子: (266)当拉普拉斯算子输出出现过零点时就表明有边缘存在,其中忽略无意义的过零点(均匀零区)。原则上,过零点的位置精度可以通过线性内插方法精确到子像素分辨率,不过由于噪声,以及由噪声引起的边缘两端的不对称性,结果可能不会很精确。考虑表2-2中所给的例子。图中表明了对一幅具有简单阶跃边缘的图像进行拉普拉斯运算的结果。输出图像中的一行是:00 06-60 00在本例中,对应于原始图像边缘的零交叉点位于两个中心像素点之间。因此,边缘可以用其左边的像素或右边的像素来标记,但整幅图像的标记必须一致。在多数情况下,零交叉点很少恰好在两像素点中间,因此边缘的实际位置要通过内插值来确定。22 2 2 28 88 8 8 22 2 2 2 2 2 2 2 28 88 8 8 8 8 8 8 8 2 2 22 28 8 8 88 22 2 2 2 2 2 2 2 28 88 8 8 8 8 8 8 800 0 06-600 0 0 00 0 0 0 0 0 066-6-600 0 0 0 0 0 0 0 0 006-60 0 00 0 0 0 0 6-60 0 0 0 表2-2 垂直方向的阶跃边缘拉普拉斯响应现在考虑一下图 2-11 所示的例子。该图给出了拉普拉斯算法对斜坡边缘的响应,其中的一行输出是: 零交叉点直接对应着图像中的一个像素点。当然,这是一种理想情况,图像边缘的实际情况要比这个复杂的多。 图 2.9垂直方向的斜坡边缘拉普拉斯响应拉普拉斯算子有两个缺点:其一是边缘方向信息的丢失,其二是它是二阶差分,双倍加强了图像中噪声影响。所以,后来才有人提出了改进的 LOG 算法。2.7 LOG 算法因为利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感。所以,希望在边缘增强前滤除噪声。为此,Marr 和 将高斯滤波和拉普拉斯边缘检测结合在一起,形成 LoG(Laplacian of Gaussian, LoG)算法,也有人称之为拉普拉斯高斯算法。LOG 算法理论是从生物视觉理论导出的方法。其基本思想是:首先在一定范围内做平滑滤波,然后利用差分算子检测在相应尺度上的边缘。滤波器的选择取决于两个因素,一是要求滤波器在空间上平稳,空间位置误差 要小,二是要求平滑滤波器本身是带通滤波器,在其有限带通内是平稳的,即要求频域误差 要小。由信号处理中的测不准原理知, 与 是矛盾的,达到测不准下限的滤波器是高斯滤波器。Marr 和 Hildreth 提出的差分算子是各向同性的拉普拉斯二阶差分算子。LoG 边缘检测器的基本特征是1、 平滑滤波器是高斯滤波器2、 增强步骤采用二阶导数(二维拉普拉斯函数)3、 边 缘 检 测 判 据 是 二 阶 导 数 零 交 叉 点 并 对 应 一 阶 导 数 的 较大峰值。这种方法的特点是图像首先与高斯滤波器进行卷积,这一步既平滑了图像又降低了噪声,孤立的噪声点和较小的结构组织将被滤除。由于平滑会导致边缘的延展,因此边缘检测器只考虑那些具有局部梯度最大值的点为边缘点,这一点可以用二阶导数的零交叉点来实现。拉普拉斯函数用作二维二阶导数的近似,是因为它是一种无方向算子。为了避免检测出非显著边缘,应选择一阶导数大于某一阈值的零交叉点作为边缘点。LoG 算子的输出 h(x, y) 是通过卷积运算得到的: (271)根据卷积求导法有: (272)其中: (273)称之为墨西哥草帽算子(见图 2.10)。由以上分析知,下面两种方法在数学上是等价的:1、 求图像与高斯滤波器卷积,再求卷积的拉普拉斯变换2、 求高斯滤波器的拉普拉斯变换,再求与图像的卷积图 2.10墨西哥草帽算子剖面图和立体图, =1如果采用第一种方法,就要用到高斯平滑滤波器。直接实现 LoG算法的典型模板见表2-3。滤波(通常是平滑)、增强、检测这三个边缘检测步骤对使用 LoG边缘检测仍然成立,其中平滑是用高斯滤波器来完成的;增强是将边缘转换成零交叉点来实现的;边缘检测则是通过检测零交叉点来进行的。可以看到,零交叉点的斜率依赖于图像强度在穿过边缘时的变化对比度。剩下的问题是把那些由不同尺度算子检测到的边缘组合起来。在上述方法中,边缘是在特定的分辨下得到的为了从图像中得到真正的边缘,有必要把那些通过不同尺度算子得到的信息组合起来。 0 0-1 0 00-1-1-2 -2 -1 16 -20-1 0 -1 -2 -1 0 0 0 -1 0 0表2-3 典型拉普拉斯高斯模板2.8 Canny 边缘检测器Canny 检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。检测阶跃边缘的大部分工作集中在寻找能够用于实际图像的梯度数字逼近。由于实际的图像经过了摄像机光学系统和电路系统(带宽限制)固有的低通滤波器的平滑,因此,图像中的阶跃边缘不是十分陡立。图像也受到摄像机噪声和场景中不希望的细节的干扰。图像梯度逼近必须满足两个要求:(1) 逼近必须能够抑制噪声效应,(2) 必须尽量精确地确定边缘的位置。抑制噪声和边缘精确定位是无法同时得到满足的,也就是说,边缘检测算法通过图像平滑算子去除了噪声,但却增加了边缘定位的不确定性;反过来,若提高边缘检测算子对边缘的敏感性,同时也提高了对噪声的敏感性。有一种线性算子可以在抗噪声干扰和精确定位之间提供最佳折衷方案,它就是高斯函数的一阶导数。Canny 根据检测的要求,定义了下面三个最优准则:1、 最优检测。对真实边缘不漏检,非边缘点不错检,即要求输出信噪比最大2、 最优检测精度。检测的边缘点的位置距实际的边缘点的位置最近3、 检测点与边缘点一一对应。每一个实际存在的边缘点和检测的边缘点是一一对应的关系Canny 首次将上述判据用是数学的形式表示出来,然后采用最优化数值方法,得到最佳 边缘检测模板。对于二维图像,需要使用若干方向的模板分别对图像进行卷积处理,再取最可能的边缘方向。现在我们对 Canny 边缘检测器作一概括说明。用 f i, j表示图像。使用可分离滤波方法求图像与高斯平滑滤波器卷积,得到的结果是一个已平滑数据阵列 (281)其中 代表一个高斯滤波的过程,而是高斯函数的标准差,它控制着平滑程度。已 平 滑 数 据 阵 列Si, j 的 梯 度 可 以 使 用 2×2一 阶 有 限 差 分 近 似式来计算 x 与 y 偏导数的两个阵列 Pi, j与 Qi, j: (282)在这个 2×2正方形内求有限差分的均值,以便在图像中的同一点计算 x 和 y 的偏导数梯度。幅值和方位角可用直角坐标到极坐标的坐标转化公式来计算: (283)其中,反正切函数包含了两个参量,它表示一个角度,其取值范围是整个圆周范围内。为高效率地计算这些函数,尽量不用浮点运算。梯度的幅度和方向也可以通过查找表由偏导数计算。反正切函数的大多数计算使用的是定点运算,很少的几个计算是基本浮点运算,其中的浮点运算是由整数和定点算术通过软件实现的。在上式中,反映了图像上的点 i, j处的边缘强度,i, j是 的法向矢量,正交于边缘方向。根据 Canny 的定义,中心边缘点为算子 与图像f i, j的卷积在边缘梯度方向上的最大值,这样就可以在每一个点的梯度方向上判断此点强度是否为其邻域的最大值来确定该点是否为边缘点。当一个像素满足下面三个条件时,则被认为是图像的边缘点:1、 该 点 的 边 缘 强 度 大 于 沿 该 点 梯 度 方 向 的 两 个