Canny算子实验报告
- 格式:docx
- 大小:1.96 MB
- 文档页数:7
一、实验目的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检测算法与实现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( 坎尼) 算子是以待处理像素为中心的邻域作为进行灰度分析的基础, 实现对图像边缘的提取并已经取得了较好的处理效果。
在图象边缘检测中往往要求所检测到的边缘具有封闭特性,即边界闭合图象边缘检测的基本步骤(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):仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。
摘要................................................................................................................................................... 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对算法进行实现。
最后,本文将会把实验获得的实际效果,与理论分析的结果进行比对,并以此对本次实验进行总结。
第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算子具有更好的检测效果,能够有效抑制噪声,同时保留边缘信息。
基于canny算子的边缘检测算法应用研究作者:陈蒙来源:《电子技术与软件工程》2013年第23期摘要:边缘检测技术是图像处理过程的重要一环,本文主要研究基于canny算则的边缘检测算法中的抑制噪声、寻找亮度梯度、非极大值抑制、边缘的确定和连接等四个过程,并逐个分析其实现过程及作用。
【关键词】边缘检测高斯平滑1 引言随着图像处理技术的发展与广泛应用,现在社会中图像处理的应用领域越来越广泛,如三维重建,医学诊断,图像识别等等。
而图像处理过程中,最重要的一项预处理技术即为边缘检测技术。
图像的边缘是图像特征识别中的重要组成部分。
我们一般认为边缘是图像中周围像素有不连续变化或屋脊变化的像素的集合。
在一幅图像中,边缘特征所表达的信息量在整张图片的特征信息中占有主导地位,对图像特征的识别、分析十分重要。
边缘信息主要从像素值幅度和走向两个方面来表示。
一般来说,沿着边缘走向的像素点灰度值呈连续性变化特征,而垂直于边缘走向的像素点灰度值则呈跳跃性或阶跃性变化特征。
边缘检测技术即为通过一定的算法将图像中的边缘尽可能真实地提取或表示出来的技术。
边缘检测技术发展到目前已有很多类提取算法,但主要的计算原则就借助于类似高斯平滑、傅里叶变换等的数学函数与图像的灰度矩阵进行卷积计算,从而得到横、纵两个方向上的梯度图像和模图像,然后根据梯度方向来进行模的极大值提取,获得需要的图像特征边缘。
本文主要研究的是以canny算子为检测手段的边缘检测算法。
2 canny边缘检测算法任何一个边缘检测算法的原则都是真实、详尽地标识出原图像的实际边缘,同时又尽可能避免图像中的噪点、伪边缘等噪声的干扰,找到一个最优的图像边缘。
Canny边缘检测算法也是如此,一般由抑制噪声、寻找梯度亮度、非极大值抑制、确定和连接边缘这四步完成的。
2.1 1抑制噪声任何图像在进行边缘检测之前,都要进行抑制噪声的预处理。
它是所有图像处理过程的第一步。
图像的噪声主要有椒盐噪声和高斯噪声两种,而绝大部分图形的干扰噪声属于高斯噪声,因此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章前言研究背景在图像处理、模式识别、计算机视觉、生物医学、遥感器视觉、气象预测等诸多领域的图像预处理中,特征提取起着举足轻重的作用。
第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。
第1篇一、实验目的本次实验旨在通过机器视觉技术,了解和掌握机器视觉测量系统的基本原理和操作方法,掌握图像采集、图像处理、特征提取和尺寸测量的过程。
通过实验,加深对机器视觉技术在工业生产中的应用的理解。
二、实验设备1. 机器视觉测量系统:包括工业相机、光源、图像采集卡、控制计算机等。
2. 实验样品:不同尺寸和形状的工件。
3. 图像处理软件:如MATLAB、OpenCV等。
三、实验原理机器视觉测量系统通过图像采集设备获取物体的图像,然后利用图像处理技术对图像进行处理,提取出物体的特征信息,进而实现对物体尺寸的测量。
实验中主要涉及以下原理:1. 图像采集:通过工业相机获取物体的图像,图像采集过程中需要注意曝光时间、分辨率等因素。
2. 图像处理:对采集到的图像进行预处理,如灰度化、滤波、二值化等,以去除噪声和干扰。
3. 特征提取:从处理后的图像中提取出物体的特征信息,如边缘、角点、形状等。
4. 尺寸测量:根据提取的特征信息,利用几何关系计算出物体的尺寸。
四、实验步骤1. 样品准备:将不同尺寸和形状的工件放置在实验平台上,确保样品与相机平行。
2. 光源设置:根据样品的特性选择合适的光源,如背光、侧光等,以提高图像质量。
3. 图像采集:通过工业相机获取样品的图像,并将图像传输到控制计算机。
4. 图像处理:对采集到的图像进行预处理,如灰度化、滤波、二值化等。
5. 特征提取:从处理后的图像中提取出物体的特征信息,如边缘、角点、形状等。
6. 尺寸测量:根据提取的特征信息,利用几何关系计算出物体的尺寸。
7. 结果分析:对测量结果进行分析,评估机器视觉测量系统的精度和稳定性。
五、实验结果与分析1. 图像采集:实验中使用了不同曝光时间的图像,通过对比发现,曝光时间适中时,图像质量较好,噪声较少。
2. 图像处理:通过灰度化、滤波、二值化等处理,可以有效去除噪声和干扰,提高图像质量。
3. 特征提取:通过边缘检测、角点检测等算法,可以提取出物体的特征信息,为尺寸测量提供依据。
边缘检测实验报告姓名:学号:一、实验题目编程实现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)好的检测- 算法能够尽可能多地标识出图像中的实际边缘。
第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算⼦求图⽚的边缘,其中主要包括七⼤部分: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边缘检测曹天悦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算法中减少假边缘数量的方法是采用双阈值法。
边氽检测是一种比较新的辿缰检则算子,具有很好的边塢监测性能,在圉樣处理中得到了越来拯广泛的应用。
它依据圏像边煨检测最优;隹则设计。
込泌燼楡测算法:(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 算子。