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检测算法与实现

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 算子图像边缘重要概念边缘定义为图像中灰度发生急剧变化的区域边界。

边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。

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边缘检测与轮廓提取

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篇)

视觉机器应用实验报告(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算子实现图像的边缘检测(董书月组)要点

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

基于canny算子的边缘检测算法应用研究

基于canny算子的边缘检测算法应用研究

基于canny算子的边缘检测算法应用研究作者:陈蒙来源:《电子技术与软件工程》2013年第23期摘要:边缘检测技术是图像处理过程的重要一环,本文主要研究基于canny算则的边缘检测算法中的抑制噪声、寻找亮度梯度、非极大值抑制、边缘的确定和连接等四个过程,并逐个分析其实现过程及作用。

【关键词】边缘检测高斯平滑1 引言随着图像处理技术的发展与广泛应用,现在社会中图像处理的应用领域越来越广泛,如三维重建,医学诊断,图像识别等等。

而图像处理过程中,最重要的一项预处理技术即为边缘检测技术。

图像的边缘是图像特征识别中的重要组成部分。

我们一般认为边缘是图像中周围像素有不连续变化或屋脊变化的像素的集合。

在一幅图像中,边缘特征所表达的信息量在整张图片的特征信息中占有主导地位,对图像特征的识别、分析十分重要。

边缘信息主要从像素值幅度和走向两个方面来表示。

一般来说,沿着边缘走向的像素点灰度值呈连续性变化特征,而垂直于边缘走向的像素点灰度值则呈跳跃性或阶跃性变化特征。

边缘检测技术即为通过一定的算法将图像中的边缘尽可能真实地提取或表示出来的技术。

边缘检测技术发展到目前已有很多类提取算法,但主要的计算原则就借助于类似高斯平滑、傅里叶变换等的数学函数与图像的灰度矩阵进行卷积计算,从而得到横、纵两个方向上的梯度图像和模图像,然后根据梯度方向来进行模的极大值提取,获得需要的图像特征边缘。

本文主要研究的是以canny算子为检测手段的边缘检测算法。

2 canny边缘检测算法任何一个边缘检测算法的原则都是真实、详尽地标识出原图像的实际边缘,同时又尽可能避免图像中的噪点、伪边缘等噪声的干扰,找到一个最优的图像边缘。

Canny边缘检测算法也是如此,一般由抑制噪声、寻找梯度亮度、非极大值抑制、确定和连接边缘这四步完成的。

2.1 1抑制噪声任何图像在进行边缘检测之前,都要进行抑制噪声的预处理。

它是所有图像处理过程的第一步。

图像的噪声主要有椒盐噪声和高斯噪声两种,而绝大部分图形的干扰噪声属于高斯噪声,因此canny算法的第一步采用的是运用二维高斯平滑模板与原图像数据进行卷积计算,而得到抑制噪声后的待处理图像。

毕业设计(论文)-基于动态双阈值的canny算子对象边缘提取算法研究[管理资料]

毕业设计(论文)-基于动态双阈值的canny算子对象边缘提取算法研究[管理资料]

摘要边缘检测在图像理解,分析识别领域中是十分重要的研究课题,边缘检测的效果将直接影响到图像理解和识别的性能。

在图像处理领域,边缘是图像的基本特征。

所谓边缘是指图像周围像素灰度有阶跃变化或屋顶状变化的像素的集合,它存在于目标和背景,目标与目标,区域与区域,基元与基元之间。

边缘具有方向和幅度两个特征,沿边缘走向,像素值变化比较平缓;垂直于边缘走向,像素值变化比较剧烈,可能呈现阶跃状,也可能呈现斜坡状。

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章前言研究背景在图像处理、模式识别、计算机视觉、生物医学、遥感器视觉、气象预测等诸多领域的图像预处理中,特征提取起着举足轻重的作用。

基于Canny算子的大米边缘检测

基于Canny算子的大米边缘检测

第29卷第3期河南工业大学学报(自然科学版)Vol .29,No .32008年6月Journal of Henan University of Technol ogy (Natural Science Editi on )Jun .2008收稿日期:2008202206作者简介:陈卫东(19722),男,湖南望城县人,讲师,硕士,主要研究方向为图像处理与模式识别.文章编号:167322383(2008)0320055204基于Canny 算子的大米边缘检测陈卫东1,董卓莉1,李研琰2(1.河南工业大学信息科学与工程学院,河南郑州450001;2.河南省政法管理干部学院计算机科学系,河南郑州450002)摘要:阐述了常用边缘检测算子进行边缘检测的方法,详细介绍了Canny 算子的边缘检测步骤,并将其应用于大米图像的边缘检测中.实验结果表明,Canny 算子提取的边缘线型连接程度较好,可应用于从群体米样提取大米边缘.关键词:大米;边缘检测;Canny 算子中图分类号:TS212 文献标识码:B0 引言边缘检测[1]技术首先检测出图像局部特性的不连续性,再将它们连成边界,这些边界把图像分成不同的区域,检测出边缘的图像就可以进行特征提取和形状分析.边缘特征提取是所有基于边界分割的图像分析方法中最基础的内容,并在应用中起着重要的作用,它是图像分析与识别中重要的环节,是进行目标检测、图像分割所依赖的重要特征.大米边缘提取对分析大米的品质如加工精度、不完善率、杂质、出糙率、整精米率等都有十分重要的意义,是实现大米质量检测和分级的最基本参数[2].1 常用边缘检测算子图像边缘是图像局部特性不连续性(灰度突变、颜色突变、纹理结构突变等)的反映,它标志着一个区域的终结和另一个区域的开始[3-4].为了计算方便起见,通常选择一阶和二阶导数来检测边界,利用求导方法可以很方便的检测到灰度值的不连续效果.常用的微分算子有Roberts 算子[5]、Sobel 算子[6]、Pre witt 算子[7],它们均是以图像灰度的两个差分来逼近梯度算子.采用这3种微分算子对群体米样图像进行边缘检测时,阈值thresh 的选择对边缘提取的效果至关重要.如果thresh 选取得好,可以获得比较完整的边缘,同时使得噪声不至于过大.但如果thresh 选取得不合适,则极易得到很强的噪声或者是提取的边缘的完整性极差.由于不能够自动选取合适的thresh,因此在群体米样的自动识别中,纯微分算子边缘检测法适用场合非常有限.事实上,它们存在一些共同的问题:它们的结果对噪声很敏感,图像的离散差分对噪声比对原图像更敏感;可以通过先对图像做平滑以改善结果,但是又会产生一个问题:会把一些靠在一起的边缘平滑掉,而且会影响对边缘的定位;用这些模板卷积后得到的边缘可能是跨跃好几个点而不是一个点.2 Canny 算子边缘检测2.1 Canny 算子简介Canny 算子[8-9]检测边缘遵循的3个准则为:保证成功检测出边缘,对于弱边缘也应有强响应;保证边缘良好定位;保证一个边缘只得到一次检测.Canny 算子检测边缘的具体过程如下:Step1:用二维高斯滤波模板与灰度图像卷积,以减小噪声影响;Step2:利用导数算子(如Pre witt 算子、Sobel56 河南工业大学学报(自然科学版)第29卷算子)找到图像灰度沿着两个方向的导数Gx 、Gy,并求出梯度的大小和方向:|G|=G2x +G2y,θ=arctanG yG xStep3:非极大值抑制.遍历图像,如果某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的,则将该像素值置0,即不是边缘.Step4:使用图像累计直方图计算两个阈值:灰度值大于高阈值的像素为边缘,小于低阈值的不是边缘,介于两个阈值之间的,如果其邻接像素有灰度值大于高阈值的则为边缘,如没有则不是.2.2 Canny算法实现本研究针对Canny算子检测边缘的具体过程,采用V isual C++6.0进行了编程实验[10]. 2.2.1 计算方向导数利用原图像计算图像像素的方向导数.函数名称:void D irGrad(unsigned char3 pUnchS m thd I m g,int n W idth,int nHeight,int3 pnGradX,int3pnGradY).输入:经过滤波后的图像(unsigned char3 pUnchS m thd I m g),图像宽度(int n W idth),图像高度(int nHeight).输出:x方向的方向导数(int3pnGradX)和y 方向的方向导数(int3pnGradY).2.2.2 计算梯度利用方向导数的计算结果,采用二阶范数计算梯度.函数名称:v oid Grad Magnitude(int3pn2 GradX,int3pnGradY,int n W idth,int nHeight, int3pn Mag).输入:3pnGradX、3pnGradY、n W idth、nHeight(含义同前).输出:梯度幅度(int3pn Mag).2.2.3 对梯度幅值进行非极大值抑制函数名称:void NonmaxSupp ress(int3pn2 Mag,int3pnGradX,int3pnGradY,int n W idth, int nHeight,unsigned char3pUnchR st).输入:3pn Mag、3pnGradX、3pnGradY、n W idth、nHeight(含义同前).输出:边缘部分非边界点(unsigned char3 pUnchR st).2.2.4 用双阈值算法检测和连接边缘根据梯度计算及经过非最大抑制后的结果设定阈值,这个函数也是Canny算子的重要部分,阈值的设定直接涉及哪些像素点可能为边界.函数名称:void Esti m ateThreshold(int3pn2 Mag,int n W idth,int nHeight,int3pnThdH igh, int3pnThd Low,unsigned char3pUnchEdge, double dRati oH igh,double dRati oLow)其中:3pn Mag、n W idth、int nHeight含义同前,int3pnThdH igh表示高阈值,int3pnThdLow 表示低阈值,double dRati oLow表示低阈值和高阈值之间的比例,double dRati oH igh表示高阈值占图像像素总数的比例,unsigned char3pUnchEdge 表示经过non-maxi m um处理后的数据.说明:经过处理后的数据pUnchEdge,统计pn Mag的直方图,确定阈值.本函数中只统计pUnchEdge中可能为边界点的那些像素.然后利用直方图,根据dRati oH igh设置高阈值,存储到3 pnThdHigh.利用dR ti oLow和高阈值,设置低阈值,存储到3pnThdLow,dRati oH igh是一种比例:表明梯度小于3pnThdH igh的像素数目占像素总数目的比例.dRati o Low表明3pnThdH igh和3 pnThd Low的比例.3 结果与讨论本文对上述3种经典边缘检测算子及Canny 算子分别编写了函数,并进行了实验研究,输出结果如图1~图4所示.第3期陈卫东等:基于Canny 算子的大米边缘检测57 从输出结果可以看出Roberts 算子边缘粗细不均匀,Sobel 算子边缘检测较粗,而用Pre witt 检测的边缘并不是完全连通的,这是因为利用一阶微分算子的边缘检测方法都采用梯度思想,即边缘点的求取是通过相邻几点的灰度运算得到的.以Roberts 梯度算子为例,像素点(m ,n )的梯度计算公式为:Δx f =f (m ,n )-f (m -1,n -1)Δy f =f (m -1,n )-f (m ,n -1)Δf =(Δx f )2+(Δy f )2因此,像素点(m ,n )的梯度值与f (m ,n )、f (m -1,n -1)、f (m -1,n )、f (m ,n -1)4点的灰度值有关,这就意味着若有一个点f (i,j )被噪声干扰了,那么通过梯度运算检测时,与其相邻的8个点的梯度运算结果均受噪声的干扰,即边缘检测时噪声的影响通过检测算子被扩散.梯度计算完成后,将结果与选取的阈值作比较,并作出判断:如果大于阈值,则该点为边缘点,否则不是边缘点.由于梯度计算结果受噪声干扰,用梯度计算来检测边缘的方法对噪声敏感,故检测结果不甚理想.而Canny 算子首先应用二维高斯函数对图像进行平滑,再采用窗口计算灰度梯度的幅值和方向,重要的是对梯度图像进行非极大值抑制,即细化梯度幅值图像G 中的屋脊带,只保留幅值的局部极大值,弱化了噪声对梯度幅值的影响.最后采用双阈值法从候选边缘点中检测和连接出最终的边缘.双阈值法的使用克服了传统边缘检测算子因阈值设定过高损失重要的边缘信息或阈值设定较低不能有效抑制噪声的缺点,且阈值是根据具体的灰度图像累计直方图自动选取的,故Canny 算子检测边缘效果最好.在对群体米样图像进行边缘提取时,采用Canny 算子能较好地提取出连续的大米轮廓边缘,得到稳定的边缘提取结果.但实验过程中发现由于受到光源照度、信号传输等因素的影响,一些重要的边缘细节也会由于干扰或对比度不足而变得模糊、微弱,如何既有效抑制图像中的噪声,又很好地保护边缘细节应作进一步的研究与探讨.参考文献:[1] 何东健,耿楠,张义宽.数字图像处理[M ].西安:西安电子科技大学出版社,2003.[2] 任宪忠,马小愚.农产品粒形识别研究进展及其在工程中应用现状[J ].农业工程学报,2004,20(3):2762280.[3] 余成波.数字图像处理及MAT LAB 实现[M ].重庆:重庆大学出版社,2003.[4] 夏平,刘馨琼,向学军,等.基于形态学梯度的图像边缘检测算法[J ].计算机技术与发展,2007,17(12):1072109.[5] Roberts L G .Machine percep ti on of three 2di 2mensi on s olids [C ].Op tical and Electr o 2Op 2ti m alI nfor mati on Pr ocessing .Ca mbridge,MA:M I T Press,1965.[6] PrattW K,Ada m s JE .D igital i m age p r ocess 2ing (4thediti on )[J ].Journal of Electr onicI m aging,2007,16(2):029901.[7] S OBEL I .Ca mera models and machine per 2cep ti on [M ].CA:Stanf ord A I Me mo,1970:121.[8] Canny J.A computati onal app r oach t o edgedetecti on [J ].I EEE Transacti ons on PatternAnalysis and Machine I ntelligence,1986,8(6):6792698.[9] 吕哲,王福利,常玉清.一种改进的Canny边缘检测算法.东北大学学报:自然科学版,2007,28(12):168121684.[10]何斌.V isual C ++数字图像处理[M ].北京:人民邮电出版社,2001:394.58 河南工业大学学报(自然科学版)第29卷R ICE EDGE DETECTION BASED ON CANNY OPERAT ORCHEN W ei2dong1,DONG Zhuo2li1,L I Yan2yan2(1.College of Infor m a tion Science and Engineering,Henan U n iversity of Technology,Z hengzhou450052,China;2.D epart m ent of Co m puter S cience,Henan A dm inistrativeInstitute of Politics and L aw,Zhengzhou450002,China)Abstract:The rep resentative algorithm s f or edge detecti on have been p resented.The Canny operat or p rinci p le and algorith m were described in detail and were used t o detect the edges of rice as well.The results showed that the edge inf or mati on which was extracted with the Canny operat or could get the better linear connectivity and thus be app lied t o extract rice edge fr om gr oup s rice sa mp les.Key words:rice;edge detecti on;Canny operat or(上接第54页)[11]赵斌,何绍江.微生物学实验[M].北京:科学出版社,2002:2512252.[12]杨丽,张晶,熊强,等.聚乙烯醇-海藻酸钙作为德氏乳酸杆菌包埋剂的研究[J].南京工业大学学报,2007,29(1):66268. [13]陈功,王联结.P VA膜固定化酵母发酵酒精的研究[J].食品科学,2007,28(8):2442246.[14]王克明,王宇光.P1的研究,2003,14(2):442ST UDY ON I ZI N G PEN IC ILL IUM C I TR IRUM CELLSNUCLEASE P1USING D IFFERENTMULTI P LE CARR IERSS ONG W ei1,Z HANG Q in2,L I Huan2qing1(1.College of B ioengineering,Henan U niversity of Technology,Zhengzhou450052,China;2.Henan A cade m y of F ishery Science,Zhengzhou450001,China)Abstract:Three multi p le carriers were p repared t o i m mobilize the Penicillium Citrirum cells,which were s odi2 um alginate m ixing with gelatin,agar and P VA res pectively.The perf or mance of the carriers was analyzed thr ough batch fer mentati on.The results showed that mechanical strength and che m ical stability of i m mobilized cells were high when the rati o of s odium alginate t o P VA was1∶2.After50days with20batches of fer menta2 ti on on the above conditi ons,the enzy me activity of nuclease P1maintained stability,bet w een468.3U/mL t o 501.4U/mL.Key words:nuclease P1;multi p le carriers;i m mobilizati on。

opencv实现canny边缘检测实验报告

opencv实现canny边缘检测实验报告

//
//+Smooth[(i+1)*nWidth+(j+1)]-Smooth[(i+1)*nWidth+j])/2;
//
//Q[i*nWidth+j]=(double)(Smooth[i*nWidth+j]-Smooth[(i+1)*nWidth+j]
//
//+Smooth[i*nWidth+(j+1)]-Smooth[(i+1)*nWidth+(j+1)])/2;
图像边缘检测实验报告 一、实验任务
熟悉opencv,实现canny边缘检测算法,比较canny算子,Sobel算子,Prewitt算子。
二、实验原理
1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感, 因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波,即 采用离散化的高斯函数产生一组归一化的高斯核,然后基于高斯核函数对图像灰度矩阵的每一点进 行加权求和。
pdkernal_2[i+j*nWindowSize]/=dSum_2; } } //************************************************************************* //高斯滤波 for(int i=0;i<nHeight;i++) { for(int j=0;j<nWidth;j++) {
data3 =(256+img->imageData[j*img->widthStep + i*3 + 2])%256; //R分量

基于Canny算子和形态学的洞室岩体裂隙边缘检测

基于Canny算子和形态学的洞室岩体裂隙边缘检测

a e g n r td f m h rgn l i g f r t e Ca n p r tr e g ee t n a d i g e me tt n a e c n u t d Th n, a e n t e r e e ae r o t e oi i a ma e at h n y o e ao d e d tci n ma e s g n ai r o d c e . e b s d o h e o o
S D=bk rc I G [O,O @s 2 ; T lpo (MA E'1 l ], t ) d %全部像 素点 的高斯 滤波 , A S G U S为 1 0×1 0的高斯滤波器
G AS=cn2 I AG G U S,sle ) o v (M E, A S ’al’ ; T
f ri=1: o m
能 。C n y 子边 缘检测的一般步骤如 图 1 an 算 所示 。
输入图像 fx ) (, y
输出图像 ,(, x) y
测算子 因具有信噪 比大和检 测精度 高 的优点而 被广 泛应用 ,
但 由于受 洞室 内照 明条件 的 限制 , 之人 工开凿 造成 破损痕 迹 加
图 1 Cny an 边缘 检测 步骤
日c ,,= xy
很多伪裂 隙边缘 。而岩体裂 隙本 身具有很明显 的灰度特征 和线 性 几何 形态特征 , 够被用来判别岩 体裂 隙的真伪 。基 于此 , 能 本 文提 出了一种 C n y算子与形态学算法 相结合的洞室岩体 裂 隙 an 边 缘检 测方法 , 保留 C ny算 子检 测出 的高定 位精 度 的裂 隙 在 an
c mb n s C n y o e a o n h r h l g s p o o e n v e fi gn h rc e sis o n e o k f c u e F rt t i a y i g s o i e a n p r t ra d te mop o o y i r p s d i i w o ma i g c aa t r t f u n lrc r t r . isl wo b n r ma e i c t a y,

自适应Canny算子边缘检测技术

自适应Canny算子边缘检测技术

幅值为
M [ i , j ] = ( Px [ i , j ]) 2 + ( Py [ i , j ]) 2 , (4) 梯度方向为
θ[ i , j ] = arctan ( Py [ i , j ]/ Px [ i , j ]) . (5) 11 3 对梯度幅值进行非极大值抑制
为了提取单像素宽边缘 ,必须细化梯度幅值图. 在梯度幅值图像中 , M [ i , j ]的极大值所在位置附近
前已述及 ,高低阈值的确定还是无法避免人为 因素的干扰 ,不具备自适应性和鲁棒性 ,不适合实际 工程应用. 因此 , 提出了完全可以排除人为干扰因 素 ,针对不同图像 ,自适应地确定相关阈值的方法.
2 基于梯度幅度直方图和类内方差最小 化动态的自动确定高低阈值
21 1 基于梯度幅度直方图的类内特性方差最小化 1979 年 ,Ot su[8] 根据最小二乘原理推导出来了
若此点的模极大值在邻域中最大等提出了模糊控制算法对阈值间的像素进行提取按此规则进行边缘提取和连接例系数hratioratio是一样的但是计算机计算出的高低阈值却是不同的这说明这种依靠人为设定阈值比例系数的自适应的方法较人为设定阈值进行试凑的方法有一定的灵活性但是发现在图中边缘检测的效果虽然损失一些细节信息但边缘检测整体效果较好但在图中发现采用同样的比例因子却误检了很多冗余信息针对不同的图片采用一致的比例系数是不科学的采用传统的cany边缘检测技术得到的结果均漏掉了一些边缘信息但得到各图检测结果所采用的比例系数和得到各这说明在应用传统的canny算子进行边缘检测的时候为了得到较好的检测结果需要反复的凭经验试凑而且系数的选取较难掌握为采用该文的方法所确定的阈值进行边缘检测的发现不需要人为的设定比例系数或者阈值即可实现较好效果的边缘检测细节信息和整体轮廓较好

机器视觉测量实验报告(3篇)

机器视觉测量实验报告(3篇)

第1篇一、实验目的本次实验旨在通过机器视觉技术,了解和掌握机器视觉测量系统的基本原理和操作方法,掌握图像采集、图像处理、特征提取和尺寸测量的过程。

通过实验,加深对机器视觉技术在工业生产中的应用的理解。

二、实验设备1. 机器视觉测量系统:包括工业相机、光源、图像采集卡、控制计算机等。

2. 实验样品:不同尺寸和形状的工件。

3. 图像处理软件:如MATLAB、OpenCV等。

三、实验原理机器视觉测量系统通过图像采集设备获取物体的图像,然后利用图像处理技术对图像进行处理,提取出物体的特征信息,进而实现对物体尺寸的测量。

实验中主要涉及以下原理:1. 图像采集:通过工业相机获取物体的图像,图像采集过程中需要注意曝光时间、分辨率等因素。

2. 图像处理:对采集到的图像进行预处理,如灰度化、滤波、二值化等,以去除噪声和干扰。

3. 特征提取:从处理后的图像中提取出物体的特征信息,如边缘、角点、形状等。

4. 尺寸测量:根据提取的特征信息,利用几何关系计算出物体的尺寸。

四、实验步骤1. 样品准备:将不同尺寸和形状的工件放置在实验平台上,确保样品与相机平行。

2. 光源设置:根据样品的特性选择合适的光源,如背光、侧光等,以提高图像质量。

3. 图像采集:通过工业相机获取样品的图像,并将图像传输到控制计算机。

4. 图像处理:对采集到的图像进行预处理,如灰度化、滤波、二值化等。

5. 特征提取:从处理后的图像中提取出物体的特征信息,如边缘、角点、形状等。

6. 尺寸测量:根据提取的特征信息,利用几何关系计算出物体的尺寸。

7. 结果分析:对测量结果进行分析,评估机器视觉测量系统的精度和稳定性。

五、实验结果与分析1. 图像采集:实验中使用了不同曝光时间的图像,通过对比发现,曝光时间适中时,图像质量较好,噪声较少。

2. 图像处理:通过灰度化、滤波、二值化等处理,可以有效去除噪声和干扰,提高图像质量。

3. 特征提取:通过边缘检测、角点检测等算法,可以提取出物体的特征信息,为尺寸测量提供依据。

canny实验报告

canny实验报告

一半或 40%处为低阈值。 在图 edge 中的候选边缘点中, 梯度值大于高阈值的点作为边缘保 留, 梯度值小于低阈值的点则删除, 梯度值介于两阈值间且与边缘点邻接的点作为边缘保留, 否则删除。 再判断保留点的八个方向中是否存在大于高阈值的边缘像素, 如果存在则认为它 就是边缘点,否则不是。 传统 Canny 算子需要人为预先设置高低阈值,这需要先验经验,可能反复多次试验才能找 到合适的阈值。阈值设置过高可能导致边缘断裂、不连续,从而丢失边缘信息。阈值设置过 低可能导致提取的边缘中出现过多的伪边缘, 甚至将噪声当做边缘提取。 并且实际记录的图 像易受光照、 场景等不确定因素的影响, 不同的图像其高低阈值比例不一定是一个固定的值。 由 Canny 算法流程可以看出在方差确定的条件下, 阈值的选取是进行图像边缘提取的关键。
传统 canny 算子的处理结果
原图 分析:卡通图案层次分明,基于 otsu 算法的处理结果和传统 canny 算法的处理结果都比较 令人满意,兔子身上的条纹,数字,手里的门票字样,背景的日历上的数字,叉号,窗户层 次都能相对清楚地显示出来。与 otsu 算法相比,传统 canny 算法仍然缺失了部分细节:红 兔子脸上的齿轮,耳朵上的别针,背景墙上的便签,绿兔子缠在一起的耳朵都欠缺了表现。 但再仔细观察发现 otsu 算法中有的细节处也包含了一些不是边缘的噪声,这就导致其结果 没有传统 canny 算子的结果清晰明了。对这幅图片的处理两种算法各有优缺点。
实验三 OpenCV 实现 Canny 边缘检测
实验报告
一、引言
随着当前数字化信息技术的发展, 数字图像处理技术变得越来越重要, 尤其在光电探测领域 更是得到了广泛应用, 主要内容之一就是实现图像目标边缘的精确定位。 本次上机实验就是 通过对 opencv 软件和 canny 算子的学习,来实现边缘检测。

(完整版)Canny算子实验报告

(完整版)Canny算子实验报告

边缘检测实验报告姓名:学号:一、实验题目编程实现Canny 、Sobel 、Perwit 这三个边缘检测算子,并分析和比较它们性能。

二、实验原理边缘是指图像局部强度变化最显著的部分。

主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础。

边缘检测正是利用物体和背景在某种图像特征上的差异来实现检测,这些差异包括灰度、颜色或纹理特征,边缘检测实际上就是检测图像特征发生变化的位置。

a. Sobel 边缘检测算子Sobel 算子是一种一阶微分算子,它利用像素临近区域的梯度值来计算1个像素的梯度,然后根据一定的阈值来取舍。

Sobel 算子是3*3算子模板。

图1所示的2个卷积核dx 、 dy 形成Sobel 算子。

一个核通常的垂直边缘响应最大,而另一个核对水平边缘响应最大。

图1 . Sobel 算子以A 代表原始图像,Gx 及Gy 分别代表经横向及纵向边缘检测的图像灰度值,其公式如下:(1.1)图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:(1.2)A =[Z 1Z 2Z 3Z 4Z 5Z 6Z 7Z 8Z 9]梯度方向:(1.3)梯度G大于某一阀值则认为该点(x,y)为边缘点b. Prewitt边缘检测算子Prewitt算子是3*3算子模板。

图2所示的2个卷积核dx和dy形成了Prewitt算子。

与Sobel算子的方法一样,图像中的每个点都用这2个核进行卷积。

图2 . Prewitt算子(1.4)c. Canny边缘检测算子Canny边缘检测基本原理:(1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。

(2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。

这就是Canny边缘检测算子。

(3) 先平滑后求导数的方法。

Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是::(1)好的检测- 算法能够尽可能多地标识出图像中的实际边缘。

基于Canny边缘检测的数字稳像算法研究

基于Canny边缘检测的数字稳像算法研究

第32卷第3期2007年5月 光学技术OP T ICA L T ECHN IQ U EV ol.32No.3M ay 2007文章编号:1002 1582(2007)03 045003基于Canny 边缘检测的数字稳像算法研究尹德森,赵跃进,杨佩原,郑宁(北京理工大学信息科学技术学院光电工程系,北京 100081)摘 要:提出了一种将改进的Canny 边缘检测技术应用于数字电子稳像中的方法,通过选择图像边缘线的交叉点作为特征点,以此确定仿射模型的运动参数,并进行运动补偿从而达到输出稳定视频图像的目的。

实验结果表明用这种方法提取的特征点具有良好的稳定性,实际应用效果良好。

关键词:Canny 边缘检测;运动估计;运动补偿中图分类号:T P75;T P806+.1 文献标识码:AResearch of digital image stabilization algorithm based on canny edge detectionYIN De sen,ZH AO Yue jin,YAN G Pei yu an,ZHEN G N ing(Department of Optical Engineering,School of Infor mation and Science T echnology,Beijing Institute of T echnology,Beijing 100081,China)Abstract:T he improving method of Canny edge detection algorithm for dig ital imag e stabilization w as proposed.Cross points of edg e lines w ere picked up as the featur e points.T hen the parameters of the affine model w ere calculated based on these points.With these par ameters the motion compensate was completed and the steady video sequences were displayed.T he r esult shows t hat it has favo rable stabilities using this algorit hm,and the practicality effect of this method is all right.Key words:Canny edge detection;motion estimation;motion compensate0 引 言摄像系统应用于实时观察和实时监测等任务时,通常要求有高质量的观察和监测视频图像输出,但是由于受到应用环境的限制,处于工作平台上的摄像系统常常是不稳定的,造成了输出视频图像序列的抖动,这不仅使观察者产生眩晕感,而且对后续的图像跟踪、图像分析等工作造成不利的影响。

Canny算子c++

Canny算子c++

Canny算⼦c++、功能简介及其运⾏(⼀)、功能:该程序实现了canny算⼦求图⽚的边缘,其中主要包括七⼤部分:1、对传⼊的彩⾊图⽚⼆值化2、对⼆值化后的图⽚进⾏⾼斯滤波3、使⽤sobel算⼦对滤波之后的图形分别求x,y⽅向上的梯度4、计算出梯度幅值5、对梯度图像做⾮极⼤抑制6、对⾮极⼤抑制后的图像做双阈值处理7、对双阈值处理后的图像进⾏连接操作(处理阈值中间的点)(⼆)、运⾏:注意要在release⽂件夹下运⾏exe运⾏程序后终端会显⽰所⽤到的sobel算⼦矩阵和⾼斯滤波矩阵,同时会弹出多张图⽚,他包括:1、原图⽚:Lena.jpg2、⼆值化后的图⽚:gray.jpg3、⾼斯滤波后的图⽚:guss,jpg4、x,y⽅向梯度的图⽚:gradit_x.jpg gradint_y.jpg5、梯度图⽚:gradint.jpg6、⾮极⼤抑制后的图⽚:afterNms.jpg7、双阈值后的图⽚:afterDT.jpg8、连接操作后的图⽚(即最终的canny算法图⽚)canny.jpg9、使⽤opencv⾃带函数得到的canny算⼦图⽚(⽤于对⽐)弹出的同时,会将这些图⽚保存在当前路径的⽂件下,命名为上⾯的命名。

⼆、开发环境操作系统:windowsOpencv版本:2.4编译器:vs2015语⾔:c++请助教运⾏release下的exe。

三、程序思路⼤体思路其实与上⾯七⼤部分相同,这⾥做⼀个概述,并说明⼤体实现,具体通过这个简单流程图来说明(流程图viso⽂件附在压缩包内))⼀、具体实现(1)图像灰度化:图像灰度画函数:Mat getGray(Mat &image)作⽤:返回⼀张彩⾊图⽚的灰度图⽚实现⽅式:才⽤标准的转化公式:Gray = R*0.299 + G*0.587 + B*0.114循环的取出每⼀个像素,对每⼀个彩⾊像素做该运算就可得到灰度图⽚。

(2)获取⾼斯核图像灰度画函数:double **getGussKernel(int size, double sigma)作⽤:返回⼀个⼆维double类型指针,⾥⾯是对应size和sigma的⾼斯卷积核实现⽅式:通过查阅资料和博客我们知道⾼斯卷积核公式:由这个公式,我们可以容易写出⼀下核⼼代码:最后记得要做归⼀化,之后返回指针g即可。

Canny算法研究

Canny算法研究

实验十Canny边缘检测曹天悦F15030222016-12-61.实验目的1.1了解OpenCV中的Canny函数及Canny算法,并能够自己实现2.实验环境Ubuntu14.04LTS+OpenCV+python2.73.实验原理3.1Canny算法原理Canny 边缘检测算法是John F. Canny 于1986年开发出来的一个多级边缘检测算法,也被很多人认为是边缘检测的最优算法, 最优边缘检测的三个主要评价标准是: 低错误率: 标识出尽可能多的实际边缘,同时尽可能的减少噪声产生的误报。

高定位性: 标识出的边缘要与图像中的实际边缘尽可能接近。

最小响应: 图像中的边缘只能标识一次。

3.2Canny算法的实现步骤3.2.1灰度化由于边缘检测需要使用灰度图像,所以需要现将图像进行灰度化。

方式一:Gray = (R + G + B)/3方式二:Gray = 0.299R + 0.587G + 0.114B其中方式二考虑了人眼的生理特性。

3.2.2高斯滤波(去噪)图像高斯滤波的实现可以用两个一维高斯核分别两次加权实现,也可以通过一个二维高斯核一次卷积实现。

离散化的一维高斯函数与二维高斯函数如下:确定参数就可以得到一维核向量与二维核向量:得到高斯核之后,要对整个核进行归一化处理。

3.2.3灰一阶偏导的有限差分来计算梯度的幅值和方向关于图像灰度值得梯度可使用一阶有限差分来进行近似,这样就可以得图像在x和y方向上偏导数的两个矩阵。

常用的梯度算子有如下几种:Roberts 算子Sobel算子Prewitt算子Canny算法使用的算子可以求出如下所示的几个矩阵:3.2.4梯度非极大值抑制图像梯度幅值矩阵中的元素值越大,说明图像中该点的梯度值越大。

在Canny算法中,非极大值抑制是进行边缘检测的重要步骤,是指寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,从而可以剔除掉一大部分非边缘点。

3.2.5双阈值算法检测和连接边缘Canny算法中减少假边缘数量的方法是采用双阈值法。

湖南大学脑与认知科学概论实验报告3详解

湖南大学脑与认知科学概论实验报告3详解

边氽检测是一种比较新的辿缰检则算子,具有很好的边塢监测性能,在圉樣处理中得到了越来拯广泛的应用。

它依据圏像边煨检测最优;隹则设计。

込泌燼楡测算法:(1)首先用烈高斯遥逋複扳魅行卷稅以消除噪靑(2)利用导教空艸到图慢灰度地沿着两个右向的偏导教(0斗*q ),弄求出梯摩的大小,冏=阳心利用(2)的结果i+H曲第度的方向&二Af e ,ilu⑷ 一且知道了瞒的方向,就可以把边逢的棵廣方向大致分为四种;水平、姿直、4艰方向、1节播方向沪通过梯度的方向,就可以找到这个橡章梯度方向的邻接像養。

(5)遍历圏橡,若某个像耒的页度值与其梯度方向上前后两个愎薰的换度值相比不是最大的,那么这个橡臺值養拘山即不呈边煖v(B)使用累计宜方图计算两个阈值,大于裔阈值的一定是边曝,小于低阈值的一定不是边壕,介于之间的,看返个像素的邻接像素中肓没有超过葛阈值的迩家橡素,如果有的话那么它就是边壕了,若则它就不是谨康。

可以看到,在调用时,thresh阈值可以自己设定,在接下来的实验中,我会自己尝试设定thresh值,进行边缘检测。

Sobel算子,是计算机视觉领域的一种重要处理方法。

主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。

在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。

在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。

SotaM子是憑波算子的形式来提取迤“X,丫方向各用一个檯板,两个榄板组合起来构感1个梯度茸子Q K方向摸丽寸垂直边爆嶷响最夫,丫方向模板对水平边塚融向最犬b0 -1-1LoG算子也就是Laplace of Gaussian function (高斯拉普拉斯函数)。

常用于数字图像的边缘提取和二值化。

LoG算子源于D.Marr计算视觉理论中提出的边缘提取思想,即首先对原始图像进行最佳平滑处理,最大程度地抑制噪声,再对平滑后的图像求取边缘。

由于噪声点(灰度与周围点相差很大的像素点)对边缘检测有一定的影响,所以效果更好的边缘检测器是LoG 算子,也就是Laplacian-Gauss 算子。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 个核进行卷积。
相关文档
最新文档