Canny算子实验报告
边缘化提取实验报告

一、实验目的1. 理解图像边缘检测的基本原理和过程。
2. 掌握常用的边缘检测算法,如Roberts算子、Sobel算子、Prewitt算子、Laplacian算子和Canny算子。
3. 通过实验验证不同边缘检测算法的效果,并分析其优缺点。
4. 了解特征提取的基本原理和方法,对图像边缘进行特征提取。
二、实验原理图像边缘是图像中灰度值或颜色值发生突变的地方,是图像分割和特征提取的基础。
边缘检测的目的是找到图像中灰度值变化明显的区域,即边缘。
边缘检测算法可以分为两类:基于微分算子的边缘检测算法和基于二值化的边缘检测算法。
1. 基于微分算子的边缘检测算法:- 利用一阶导数或二阶导数检测图像边缘。
- 常见的算子有Roberts算子、Sobel算子、Prewitt算子、Laplacian算子等。
2. 基于二值化的边缘检测算法:- 利用图像的二值化处理,将图像分为前景和背景两部分。
- 常见的算法有Otsu算法、Sauvola算法等。
三、实验内容1. 实验材料:- OpenCV库- Python编程环境2. 实验步骤:(1)读取图像:使用OpenCV库读取待检测的图像。
(2)灰度化:将图像转换为灰度图像,以便进行边缘检测。
(3)边缘检测:- 使用Roberts算子检测边缘。
- 使用Sobel算子检测边缘。
- 使用Prewitt算子检测边缘。
- 使用Laplacian算子检测边缘。
- 使用Canny算子检测边缘。
(4)特征提取:对检测到的边缘进行特征提取,如计算边缘长度、宽度、方向等。
(5)结果展示:将检测到的边缘和提取的特征进行可视化展示。
四、实验结果与分析1. Roberts算子:- 效果:Roberts算子对图像噪声敏感,边缘检测效果较差。
- 分析:Roberts算子对图像局部区域进行检测,容易受到噪声的影响。
2. Sobel算子:- 效果:Sobel算子对图像噪声有一定的抑制能力,边缘检测效果较好。
- 分析:Sobel算子使用高斯滤波器对图像进行平滑处理,然后计算图像的一阶导数。
Canny检测算法与实现

Canny检测算法与实现1、原理图象边缘就是图像颜⾊快速变化的位置,对于灰度图像来说,也就是灰度值有明显变化的位置。
图像边缘信息主要集中在⾼频段,图像锐化或检测边缘实质就是⾼通滤波。
数值微分可以求变化率,在图像上离散值求梯度,图像处理中有多种边缘检测(梯度)算⼦,常⽤的包括普通⼀阶差分,Robert算⼦(交叉差分),Sobel算⼦,⼆阶拉普拉斯算⼦等等,是基于寻找梯度强度。
Canny 边缘检测算法是John F. Canny 于1986年开发出来的⼀个多级边缘检测算法,也被很多⼈认为是边缘检测的最优算法, 最优边缘检测的三个主要评价标准是:低错误率: 标识出尽可能多的实际边缘,同时尽可能的减少噪声产⽣的误报。
⾼定位性: 标识出的边缘要与图像中的实际边缘尽可能接近。
最⼩响应: 图像中的边缘只能标识⼀次。
Canny算⼦求边缘点具体算法步骤如下:1. ⽤⾼斯滤波器平滑图像.2. ⽤⼀阶偏导有限差分计算梯度幅值和⽅向.3. 对梯度幅值进⾏⾮极⼤值抑制.4. ⽤双阈值算法检测和连接边缘.2、实现步骤2.1、消除噪声使⽤⾼斯平滑滤波器卷积降噪。
下⾯显⽰了⼀个 size = 5 的⾼斯内核⽰例:2.2、计算梯度幅值和⽅向按照Sobel滤波器的步骤,计算⽔平和垂直⽅向的差分Gx和Gy:在vs中可以看到sobel像素值和形状:梯度幅值和⽅向为:梯度⽅向近似到四个可能⾓度之⼀(⼀般 0, 45, 90, 135)。
2.3、⾮极⼤值抑制⾮极⼤值抑制是指寻找像素点局部最⼤值。
sobel算⼦检测出来的边缘太粗了,我们需要抑制那些梯度不够⼤的像素点,只保留最⼤的梯度,从⽽达到瘦边的⽬的。
沿着梯度⽅向,⽐较它前⾯和后⾯的梯度值,梯度不够⼤的像素点很可能是某⼀条边缘的过渡点,排除⾮边缘像素,最后保留了⼀些细线。
在John Canny提出的Canny算⼦的论⽂中,⾮最⼤值抑制就只是在0、90、45、135四个梯度⽅向上进⾏的,每个像素点梯度⽅向按照相近程度⽤这四个⽅向来代替。
Canny算子分析

Canny算子分析摘要: 图像边缘识别在实际应用中一直是图像边缘检测中的热点和难点, 迄今已有许多边缘检测方法, 其中Canny 算子在图像边缘的检测与提取中已经取得了较好的处理效果。
关键词:Canny 算子图像边缘重要概念边缘定义为图像中灰度发生急剧变化的区域边界。
边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。
Canny( 坎尼) 算子是以待处理像素为中心的邻域作为进行灰度分析的基础, 实现对图像边缘的提取并已经取得了较好的处理效果。
在图象边缘检测中往往要求所检测到的边缘具有封闭特性,即边界闭合图象边缘检测的基本步骤(1)滤波。
边缘检测主要基于导数计算,但受噪声影响。
但滤波器在降低噪声的同时也导致边缘强度的损失。
(2)增强。
增强算法将邻域中灰度有显著变化的点突出显示。
一般通过计算梯度幅值完成。
(3)检测。
但在有些图象中梯度幅值较大的并不是边缘点。
最简单的边缘检测是梯度幅值阈值判定。
(4)定位。
精确确定边缘的位置。
图1 边缘检测酸法的基本步骤Canny 边缘检测基本原理具有既能滤去噪声又保持边缘特性的边缘检测最优滤波器, 其采用一阶微分滤波器。
采用二维高斯函数的任意方向上的一阶方向导数为噪声滤波器, 通过与图像卷积进行滤波; 然后对滤波后的图像寻找图像梯度的局部最大值, 以此来确定图像边缘。
根据对信噪比与定位乘积进行测度, 得到最优化逼近算子,这就是Canny 边缘检测算子。
Canny算子求边缘点具体算法步骤如下:1. 用高斯滤波器平滑图像.2. 用一阶偏导有限差分计算梯度幅值和方向.3. 对梯度幅值进行非极大值抑制.4. 用双阈值算法检测和连接边缘.步骤1. 图像与高斯平滑滤波器卷积:令g(x,y)为平滑后的图像,用h(x,y,σ)对图像f(x,y)的平滑可表示为:g(x,y)= h(x,y,σ)*f(x,y)其中“*”代表卷积。
步骤2. 使用一阶有限差分计算偏导数列阵P与Q:步骤3.对梯度幅值进行非极大值抑制(non_maxima suppression,NMS):仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。
Canny边缘检测与轮廓提取

摘要................................................................................................................................................... Abstract (I)1 绪论 02 设计内容与OpenCV简介 (1)2.1 设计任务内容 (1)2.2 OpenCV简介 (1)3 理论分析 (2)3.1 边缘检测 (2)3.1.1 图像的边缘 (2)3.1.2 边缘检测的基本步骤 (2)3.2 轮廓提取 (3)4 边缘检测的算法比较 (4)4.1 Reborts算子 (4)4.2 Sobel算子 (4)4.3 Prewitt 算子 (5)4.4 Kirsch 算子 (6)4.5 LOG算子 (6)4.6 Canny算子 (7)5 实验仿真 (9)5.1算法设计 (9)5.2 实验结果 (10)6 分析与总结 (11)参考文献 (12)附录 (13)边缘检测是和中的基本问题,它的目的是标识出数字图像中亮度变化明显的点。
图像经过边沿检测处理之后,不仅大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
事实上,边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置。
这些轮廓常常是我们在图像边缘检测时,所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。
可用于图像边缘检测和轮廓提取的方法有很多,其中包括有常见的Robert边缘算子、Prewitt 边缘算子、Sobel边缘算子等等。
本文首先将会从数字图像处理的角度,对几种边缘检测算法进行详细的分析,然后会并选择其中一种边缘检测算法进行实验。
考虑到以后进一步的学习,本文将会使用openCV对算法进行实现。
最后,本文将会把实验获得的实际效果,与理论分析的结果进行比对,并以此对本次实验进行总结。
视觉机器应用实验报告(3篇)

第1篇一、实验目的本次实验旨在通过实际操作,了解并掌握视觉机器的基本原理和应用,提高对视觉机器处理技术的认识。
实验内容包括边缘检测、显著性检测、特征点检测和直线检测等,通过对比不同算法的优缺点,分析其在实际图像处理中的应用和局限性。
二、实验内容与步骤1. 边缘检测(1)选择图像数据:选取一张包含明显边缘结构的图像作为实验对象。
(2)Sobel边缘检测:使用Sobel算子对图像进行边缘检测,记录结果。
(3)Canny边缘检测:使用Canny算子对图像进行边缘检测,记录结果。
(4)比较两种方法的边缘检测效果,分析其差异。
2. 显著性检测(1)选择图像数据:选取一张包含不同显著性区域的图像作为实验对象。
(2)HC显著性检测:使用Python和OpenCV实现HC显著性检测算法,调整参数,比较检测效果。
(3)基于最小方向对比度显著性检测:使用Python和OpenCV实现基于最小方向对比度显著性检测算法,调整参数,比较检测效果。
(4)基于最稳定区域显著性检测:使用Python和OpenCV实现基于最稳定区域显著性检测算法,调整参数,比较检测效果。
3. 特征点检测(1)选择图像数据:选取一张包含明显角点的图像作为实验对象。
(2)Harris角点检测:使用Python和OpenCV实现Harris角点检测算法,调整参数,比较检测效果。
(3)分析角点检测结果与实际图像特征之间的关系。
4. 直线检测(1)选择图像数据:选取一张包含直线的图像作为实验对象。
(2)哈夫变换直线检测:使用Python和OpenCV实现哈夫变换直线检测算法,调整参数,比较检测效果。
(3)对图像进行预处理(如边缘检测)以提高直线检测效果。
(4)分析哈夫变换在实际场景中的应用和局限性。
三、实验结果与分析1. 边缘检测通过对比Sobel算子和Canny算子的边缘检测结果,发现Canny算子具有更好的检测效果,能够有效抑制噪声,同时保留边缘信息。
dsp-Canny算子实现图像的边缘检测(董书月组)要点

边缘检测对于物体的识别也是很重要的。主要有以下几个理由:首先,人眼通过追踪未知物体的轮廓(轮廓是由一段的边缘片段组成的)而扫视一个未知的物体。第二,经验告诉我们:如果我们能成功地得到图像的边缘,那么图像分析就会大大简化,图像识别就会容易得多。第三,很多图像并没有具体的物体,对这些图像的理解取决于他们的纹理性质,而提取这些纹理性质与边缘检测有极其密切的关系。然而自从1959年文献上最早提出边缘检测,从那以后每年都会出现很多关于边缘检测的文章。经过了四十多年的发展,已有许多种不同的边缘检测方法。典型一阶边缘检测算子包括Roberts算子,Sobel算子,Prewitt算子以及梯度算子等;典型二阶边缘检测算子包括Laplacian算子,LOG算子,canny算子。
减少假边缘数量的典型方法是对N(i,j)使用一个阈值,将低于阈值的所有值赋零值。对非极大值抑制幅值进行阈值化的结果是一个图像I(i,j)的边缘阵列。阈值化后得到的边缘阵列仍然有假边缘存在,原因是阈值太低(假正确)以及阴影的存在,使得边缘对比度减弱,或阈值T取得太高而导致部分轮廓丢失(假错误)。选择合适的阈值是困难的,需要经过反复试验。为了解决这个问题,Canny提出了一种双阀值方法。首先利用累计统计直方图得到一个高阀值 ,然后再取一个低阀值 (本文用MATLAB实现时使 =0.5 )。如果图像信号的响应大于高阀值,那么它一定是边缘;如果低于低阀值,那么它一定不是边缘;如果在低阀值和高阀值之间,我们就看它的8个邻接像素有没有大于高阀值的边缘,如果有,那么它是边缘,否则它不是边缘。
基于canny算子的边缘检测算法应用研究

基于canny算子的边缘检测算法应用研究作者:陈蒙来源:《电子技术与软件工程》2013年第23期摘要:边缘检测技术是图像处理过程的重要一环,本文主要研究基于canny算则的边缘检测算法中的抑制噪声、寻找亮度梯度、非极大值抑制、边缘的确定和连接等四个过程,并逐个分析其实现过程及作用。
【关键词】边缘检测高斯平滑1 引言随着图像处理技术的发展与广泛应用,现在社会中图像处理的应用领域越来越广泛,如三维重建,医学诊断,图像识别等等。
而图像处理过程中,最重要的一项预处理技术即为边缘检测技术。
图像的边缘是图像特征识别中的重要组成部分。
我们一般认为边缘是图像中周围像素有不连续变化或屋脊变化的像素的集合。
在一幅图像中,边缘特征所表达的信息量在整张图片的特征信息中占有主导地位,对图像特征的识别、分析十分重要。
边缘信息主要从像素值幅度和走向两个方面来表示。
一般来说,沿着边缘走向的像素点灰度值呈连续性变化特征,而垂直于边缘走向的像素点灰度值则呈跳跃性或阶跃性变化特征。
边缘检测技术即为通过一定的算法将图像中的边缘尽可能真实地提取或表示出来的技术。
边缘检测技术发展到目前已有很多类提取算法,但主要的计算原则就借助于类似高斯平滑、傅里叶变换等的数学函数与图像的灰度矩阵进行卷积计算,从而得到横、纵两个方向上的梯度图像和模图像,然后根据梯度方向来进行模的极大值提取,获得需要的图像特征边缘。
本文主要研究的是以canny算子为检测手段的边缘检测算法。
2 canny边缘检测算法任何一个边缘检测算法的原则都是真实、详尽地标识出原图像的实际边缘,同时又尽可能避免图像中的噪点、伪边缘等噪声的干扰,找到一个最优的图像边缘。
Canny边缘检测算法也是如此,一般由抑制噪声、寻找梯度亮度、非极大值抑制、确定和连接边缘这四步完成的。
2.1 1抑制噪声任何图像在进行边缘检测之前,都要进行抑制噪声的预处理。
它是所有图像处理过程的第一步。
图像的噪声主要有椒盐噪声和高斯噪声两种,而绝大部分图形的干扰噪声属于高斯噪声,因此canny算法的第一步采用的是运用二维高斯平滑模板与原图像数据进行卷积计算,而得到抑制噪声后的待处理图像。
毕业设计(论文)-基于动态双阈值的canny算子对象边缘提取算法研究[管理资料]
![毕业设计(论文)-基于动态双阈值的canny算子对象边缘提取算法研究[管理资料]](https://img.taocdn.com/s3/m/0b216fd70722192e4436f622.png)
摘要边缘检测在图像理解,分析识别领域中是十分重要的研究课题,边缘检测的效果将直接影响到图像理解和识别的性能。
在图像处理领域,边缘是图像的基本特征。
所谓边缘是指图像周围像素灰度有阶跃变化或屋顶状变化的像素的集合,它存在于目标和背景,目标与目标,区域与区域,基元与基元之间。
边缘具有方向和幅度两个特征,沿边缘走向,像素值变化比较平缓;垂直于边缘走向,像素值变化比较剧烈,可能呈现阶跃状,也可能呈现斜坡状。
Canny算子提取算法采用二维高斯函数任一方向上的一阶方向导数为噪声滤波器,通过卷积运算对图像滤波,然后寻找滤波后图像梯度的局部极大值,以确定图像边缘。
Canny算子提取算法得到的目标图像,具有信噪比大和检测精度高的优点,因此得到广泛的应用。
动态阈值Canny算法根据图像的具体情况而选择阈值,该方法具有更广的自适应能力,保证了图像边界提取的准确性。
关键词:边缘检测,Canny算子,动态阈值ABSTRACTEdge detection is an important topic in image understanding and identifies areas. The effect of edge detection will directly affect the image understanding and performance recognition.Edge is the most basic features of image. The so-called edge is around the pixel grayscale image with a step change or roof-like changes in the set of pixels. It exists in target and background, goals and objectives, regional and regional, unit and unit. There are two characteristic of edge, which are direction and magnitude. Along with edge, changes of pixel value are small, and in another direction changes are dramatically large. Sometimes it may shows step-like and sometimes it may be presented sloping.Canny edge detection employs 2-dimentional Gaussian filter function to eliminate noise. And then find out the maximal value of filtered image in local. There was high signal- noise ratio and accurate location of edges detected by Canny. So it is widely used in the world. Dynamic threshold of Canny method selects the threshold by every image, so it has a more adjustable and accurately.KEY WORDS:edge detection, canny operator, dynamic threshold目录第1章前言 (1)研究背景 (1)Canny算子边缘提取算法的研究现状 (1)经典算法 (2)新兴算法 (3)本文的研究内容与章节安排 (5)本文的研究成果与意义 (5)第2章 Canny算子边缘检测的基本理论 (6)图像边缘的定义[12] (6)边缘检测的基本原理与衡量指标[13] (7)边缘检测的基本原理 (8)边缘检测的衡量指标[14][15] (9)Canny算子边缘检测 (9)Canny算子的实现步骤[16] (10)Canny算子的约束准则[18][19] (11)固定双阈值的Canny算法 (12)Canny算子存在的问题及改进的方法[20] (13)Canny算子存在的问题 (13)改进的Canny算法[21] (13)第3章动态双阈值Canny算子边缘提取算法与实现 (17)算法框图 (17)动态阈值的实现 (17)Matlab函数的意义: (18)Matlab函数实现 (18)改变测试图像 (21)第4章实验对比与分析 (24)测试图像参数说明 (24)图像的测试结果与分析 (24)Tsukuba图像的测试结果与分析 (24)Mart图像的测试结果与分析 (26)IlkayJohn图像的测试结果与分析 (29)实验总结 (31)第5章结论与展望 (32)全文工作总结 (32)未来展望 (32)致谢 (33)参考文献 (34)附录1 英文原文 (35)附录2 中文译文 (44)第1章前言研究背景在图像处理、模式识别、计算机视觉、生物医学、遥感器视觉、气象预测等诸多领域的图像预处理中,特征提取起着举足轻重的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cvLoadImage, cvCreateImage, cvCvtColor
grayImage与高斯核做卷积得到 GaussCanny
用Sobel计算G、θ,得到M 对M非极大值印制得到N
计算或设置双阈值
进行边缘检测
cvShowImage
cvReleaseImage 结束
图 5.Canny 流程图
将梯度角离散为圆周的四个扇区之一,用 3*3 的窗口作抑制运算。4 个扇区 对应 3*3 邻域的四种可能组合。 在每一点上,邻域的中心像素 M[x,y]与沿着梯度线的两个像素相比,若其不比它 们的梯度值大,则令 M[x,y] = 0,最后得到 N 矩阵。
图3
(4)用双阈值算法检测和连接边缘 减少假边缘段数量的典型方法是对 N[i,j]使用一个阈值。将低于阈值的所有值赋 零值。 双阈值算法对非极大值抑制图象作用两个阈值τ 1 和τ 2,从而可以得到两个阈 值边缘图象 N1[i,j]和 N2[i,j] 。由于 N2[i,j]使用高阈值得到,因而含 有很少的假边缘,但有间断(不闭合)。双阈值法要在 N2[i,j]中把边缘连接成 轮廓,当到达轮廓的端点时,该算法就在 N1[i,j]的 8 邻点位置寻找可以连接 到轮廓上的边缘,这样,算法不断地在 N1[i,j]中收集边缘,直到将 N2[i,j] 连接起来为止。根据经验数据,一般选取前 79%个灰度值中的最大的灰度值为高 阈值,上下限阈值比为 2:1 到 3:1 之间。 三、算法流程图 A.Sobel、Prewitt
边缘检测
实验报告
姓名: 学号: 一、实验题目 编程实现 Canny、Sobel、Perwit 这三个边缘检测算子,并分析和比较它们性 能。 二、实验原理 边缘是指图像局部强度变化最显著的部分。主要存在于目标与目标、目标与 背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图 像分析的重要基础。 边缘检测正是利用物体和背景在某种图像特征上的差异来实 现检测,这些差异包括灰度、颜色或纹理特征,边缘检测实际上就是检测图像特 征发生变化的位置。 a. Sobel 边缘检测算子 Sobel 算子是一种一阶微分算子,它利用像素临近区域的梯度值来计算 1 个 像素的梯度,然后根据一定的阈值来取舍。 Sobel 算子是 3*3算子模板。图 1 所示的 2 个卷积核 dx、 dy 形成 Sobel 算 子。一个核通常的垂直边缘响应最大,而另一个核对水平边缘响应最大。
四、程序实现 程序部分借鉴网上的代码,详细请看附件。 五、实验结果
图 6.原图
图 7.Sobel、Prewitt 边缘检测
Canny 计算梯度的幅值和方向时分别使用了 Sobel 和 Roberts 算子, 见图 8 和 图9
图 8.Canny(Sobel)边缘检测,阈值比 2:1,5:1
图 9.Cann3:1
五、实验结果分析 Prewitt 算子:对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像 素平均相当于对图像的低通滤波。 Sobel 算子:Sobel 算子和 Prewitt 算子都是加权平均,但是 Sobel 算子认为, 邻域的像素对当前像素产生的影响不是等价的, 所以距离不同的像素具有不同的 权值,对算子结果产生的影响也不同。一般来说,距离越远,产生的影响越小。 因此从图 7 可以看出,Sobel 比 Prewitt 的边缘检测更加明显,Sobel 要比 Prewitt 更能准确检测图像边缘。
开始
cvLoadImage, cvCreateImage, cvCvtColor 计算Gx、Gy
计算G、θ
min(255,G)
cvShowImage
cvReleaseImage 结束
图 4.Sobel、Prewitt 流程图
先通过 OpenCV 把图像灰度化, 过公式 1.1/1.4 算出图像与卷积核的卷积 Gx、 Gy,然后通过公式 1.2、1.3 算出 G、θ ,由于图像已经灰度化,所以 G 和 255 比较取小值,最后利用 OpenCV 输出图像。 B. Canny
图 1 . Sobel 算子
以 A 代表原始图像, Gx 及 Gy 分别代表经横向及纵向边缘检测的图像灰度值, 其公式如下:
A ������1 = ������4 ������7 ������2 ������3 ������5 ������6 ������8 ������9
(1.1) 图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度 的大小: (1.2)
图 2.Prewitt 算子
(1.4) c. Canny 边缘检测算子 Canny 边缘检测基本原理: (1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确 定边缘的位置。 (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是 Canny 边 缘检测算子。 (3) 先平滑后求导数的方法。 Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是: : (1)好的检测- 算法能够尽可能多地标识出图像中的实际边缘。 (2)好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。 (3)最小响应- 图像中的边缘只能标识一次, 并且可能存在的图像杂讯不应标识为 边缘。 Canny 边缘检测算法的步骤: (1)去噪:灰度化,与高斯核作卷积; 一维高斯核: (1.5) 二维高斯核: (1.6) (2)用一阶偏导有限差分来计算梯度的幅值和方向,常用 Sobel、Roberts 算子; (3)对梯度幅值进行非极大值抑制 得到全局的梯度仍未能确定边缘, 因此为确定边缘, 必须保留局部梯度最大的点, 抑制非极大值。 解决方法:利用梯度的方向
Canny 算子:功能比前面几种都要好,但是它实现起来较为麻烦,Canny 算 子是一个具有滤波,增强,检测的多阶段的优化算子,在进行处理前,Canny 算 子先利用高斯平滑滤波器来平滑图像以除去噪声,Canny 分割算法采用一阶偏导 的有限差分来计算梯度幅值和方向,在处理过程中,Canny 算子还将经过一个非 极大值抑制的过程,最后 Canny 算子还采用两个阈值来连接边缘。 从 Canny 算子的检测结果来看,它对于图像中的纹理丰富的地方和背景处的 边缘, 以及对比度弱的边缘都能得到很好的检出率, 但是对这些边缘点的组织结 构刻画得不是特别细致, 边缘点的位置有小范围的偏差;在大尺度上同样也丢失 了很多细节,只表现出一些轮廓特征。另外,Canny 边缘检测子不容易受到噪声 的干扰,
梯度方向: (1.3) 梯度 G 大于某一阀值则认为该点(x,y)为边缘点 b. Prewitt 边缘检测算子 Prewitt 算子是 3*3算子模板。 图 2 所示的 2 个卷积核 dx 和 dy 形成了 Prewitt 算子。与 Sobel 算子的方法一样,图像中的每个点都用这 2 个核进行卷积。