《基于matlab的图像边缘检测算法研究本科毕业设计(论文)(26页).doc》由会员分享,可在线阅读,更多相关《基于matlab的图像边缘检测算法研究本科毕业设计(论文)(26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于matlab的图像边缘检测算法研究本科毕业设计(论文)-第 15 页本科毕业设计(论文)题目:基于matlab的图像边缘检测算法研究毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和
2、纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于
3、1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它基于matlab的图像边缘检测
4、算法研究摘要图像的边缘检测技术是数字图像处理技术的基础研究内容,是物体识别的重要基础。现有边缘检测技术在抑制噪声方面有一定的局限性,在阈值参数选取方面自适应能力很差,有待进一步改进和提高。本论文首先介绍了图像边缘检测这个课题的意义和背景;作为理论基础,在第二章简单的介绍了传统的图像边缘检测算法,如Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG算子,回顾了经典的边缘检测算法,为后面介绍Canny算法作为铺垫。在第三章,结合Canny算法的基本原理、算法的三个标准、算法的思路及检测步骤提出了对Canny算子中的图像滤波平滑处理及取阈值的算法进行改进的方法,并
5、进行了实验检验。基于传统Canny算法中采用高斯滤波器对图像滤波平滑处理的效果有待改进,本论文引用了自适应中值滤波器,在使用Canny算法之前,对图像进行滤波,通过图3.4的结果显示,检测效果明显改善;而在取阈值时,在使用Otsu算法的基础上,采用顶帽算子对图像进行预处理以补偿图像,这样能取得更合适的阈值;图3.5和图3.6检测结果分别在滤波器、阈值两个方面进行了实验的比较,并与传统的Canny算法的检测结果进行了对比,显示出了本文所采用的改进算法的优越性。关键词:边缘检测;Canny算子;自适应中值滤波器;Otsu算法;顶帽算子Research on image edge detection
6、 algorithms based on MATLABABSTRACTImage edge detection technology is the basis of digital image processing technology research, an important foundation for object recognition. Existing edge detection technique has some limitations in noise suppression threshold parameter selection, poor adaptive ca
7、pacity needs to be further improved and enhanced.This paper introduces the image edge detection significance and background of the subject; theoretical basis, in the second chapter a brief introduction of the traditional image edge detection algorithm, such as Roberts operator, Sobel operator, Prewi
8、tt operator, Laplacian operator LOG operator, recalling the classic edge detection algorithm, Canny algorithm described later as bedding. In Chapter 3, the basic principle of combining the Canny algorithm, the algorithm of the three criteria, the idea of the algorithm and the detecting step, the imp
9、roved method of on Canny operator image smoothing filtering and thresholding algorithms, and experiments were carried out test.Based on the traditional Canny algorithm using Gaussian filter smoothing effect for image filtering needs to be improved, the paper quoted the adaptive median filter, Canny
10、algorithm, the image is filtered by the results of Figure 3.4 shows the detection results significantly improved; when the threshold value is taken using the Otsu algorithm based on the top-hat operator preprocessing on the image to compensate for the image, this can obtain a more appropriate thresh
11、old; Figure 3.5 and Figure 3.6 the detection result, respectively, in the filter threshold two aspects of the comparison of the experiment, and compared with the traditional the Canny algorithm of detection results show the superiority of the improved algorithm used in this paper.Keywords: edge dete
12、ction; Canny operator; adaptive median filter; Otsu algorithm; Top-Hat operator目 录第1章 绪论11.1 序言11.2 数字图像边缘检测算法的意义11.3 本文的主要章节安排2第2章 传统边缘检测方法及理论基础32.1 数字图像边缘检测的现状与发展32.2 MATLAB和图像处理工具箱的背景知识42.3 数字图像边缘检测关于边缘的定义42.4 基于一阶微分的边缘检测算子52.4.1 Roberts算子(梯度交叉算子)62.4.2 Sobel算子62.5 基于二阶微分的边缘检测算子72.5.1 Laplacian算子
13、82.5.2 LOG算子9第3章 Canny边缘检测算法的改进与研究113.1 Canny边缘检测算法113.1.1 Canny边缘检测基本原理113.1.2 Canny算法边缘检测步骤123.1.3 Canny算法的流程图123.1.3 传统Canny算法的实验与分析143.2 基于Canny算法的改进与研究143.2.1 自适应中值滤波器143.2.2 最大类间方差法153.2.3 顶帽变换163.2.4 传统Canny算法与本文算法的实验结果与分析18第4章 总 结20致 谢21参考文献22第1章 绪论1.1 序言理解图像和识别图像中的目标是计算机视觉研究的中心任务,物体形状、物体边界、
14、位置遮挡、阴影轮廓及表面纹理等重要视觉信息在图像中均有边缘产生。图像边缘是分析理解图像的基础,它是图像中最基本的特征。在Marr的计算机视觉系统中,图像边缘提取占据着非常重要位置,它位于系统的最底层,为其它模块所依赖。图像边缘提取作为计算机视觉领域最经典的研究课题,长期受到人们的重视。图像边缘主要划分为阶跃状和屋脊状两种类型。阶跃状边缘两侧的灰度值变化明显,屋脊状边缘则位于灰度增加与减少的交界处。传统的图像边缘检测方法大多是从图像的高频分量中提取边缘信息,微分运算是边缘检测与提取的主要手段。由于传统的边缘检测方法对噪声敏感,所以实际运用效果有一定的局限性。近年来,越来越多的新技术被引入到边缘检
15、测方法中,如数学形态学、小波变换、神经网络和分形理论等。Canny于1986年提出基于最优化算法的边缘检测算子,得到了广泛的应用,并成了与其它实验结果作比较的标准。其原因在于他最先建立了优化边缘检测算子的理论基础,提出了迄今为止定义最为严格的边缘检测的三个标准。另外其相对简单的算法使得整个过程可以在较短的时间内实现。实验结果也表明,Canny算子在处理受加性高斯白噪声污染的图像方面获得了良好的效果1。1.2 数字图像边缘检测算法的意义数字图像处理是控制领域的重要课题,数字图像边缘检测是图像分割、目标区域识别和区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要方法。边缘
16、中包含图像物体有价值的边界信息,这些信息可以用于图像理解和分析,并且通过边缘检测可以极大地降低后续图像分析和处理的数据量。图像理解和分析的第一步往往就是边缘检测,目前它已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。图像的边缘检测技术是数字图像处理技术的基础研究内容,是物体识别的重要基础。边缘特征广泛应用于图像分割、运动检测与跟踪、工业检测、目标识别、双目立体视觉等领域。现有边缘检测技术在抑制噪声方面有一定的局限性,在阈值参数选取方面自适应能力很差,有待进一步改进和提高。(1)多谱图像是图像配准技术中的一个难点,传统的图像配准技术只适用于同源图像,由于红外图像和可见光遥
17、感图像的成像波段不同,对于同一场景,所采集到的图像的差异很大。在此课题中,作者首先通过边缘检测,得到红外图像与遥感可见光图像的边缘图像,再通过尺度不变特征匹配,就能得到红外图像与可见光遥感图像之间的透视变换关系,从而成功完成了多谱图像配准2。(2)在“货运列车动态图像故障检测系统(TFDS,Trouble Of Moving Freight Car Detection system)中的故障识别”的课题中,作者采用水平Sobel算子检测边缘,对边缘图像进行水平方向投影,计算得到货运列车底部心盘螺栓大致区域的图像,然后用Harris算子得到一些候选故障区域,最后通过相关匹配来识别故障。(3)在“
18、基于双目立体视觉的人体动作捕捉系统”的课题中,利用图像的边缘和深度信息从视频中分割出人体前景图像。因此对图像边缘检测技术理论及其应用进行研究都有很重要的意义。1.3 本文的主要章节安排本论文首先在第一章介绍了这个课题的意义和背景;在第二章简单的介绍了传统的图像边缘检测算法,如Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG算子作为理论基础,回顾经典的边缘检测算法,也反映了研究本课题的重要性和深度;在第三章着重介绍Canny算法的基本原理、算法的三个标准、算法的思路及检测步骤,也就是本论文的基本思想,在此基础上分别对Canny算子的图像滤波及取阈值的算法进行
19、改进,并与传统的Canny算法的检测结果进行了对比,显示出了本文所采用的改进算法的优越性,同时基于实验结果给出了分析和结论以及不足之处;在第四章,对整个论文的设计进行了总结。第2章 传统边缘检测方法及理论基础2.1 数字图像边缘检测的现状与发展在数字图像处理中,边缘特征是图像的重要特征之一,是图像处理、模式识别和计算机视觉的重要组成部分之一,图像边缘检测的结果直接影响进一步图像处理、模式识别的效果。近几十年来,图像边缘检测技术成为数字图像处理技术重要研究课题之一,随着科学技术的发展,研究人员提出了很多图像边缘检测方法及边缘检测效果的评价方法,并且将这些边缘检测技术应用于计算机视觉和模式识别工程
20、领域,使得边缘检测技术的应用范围越来越广,图像的边缘一般是图像的灰度或者颜色发生剧烈变化的地方,而这些变化往往是由物体的结构和纹理,外界的光照和物体的表面对光的反射造成的。图像的边缘反映了物体的外观轮廓特征,是图像分析和模式识别的重要特征,数字图像处理技术是一门交叉学科,数学理论、人工智能、视觉生理学和心理学等各种理论为边缘检测技术研究注入新的活力,涌现出很多边缘检测理论和方法。根据边缘检测所处理的图像类型,可分为两大类:灰度图像边缘检测方法和彩色图像边缘检测方法。基于本论文仅研究讨论灰度图像边缘检测,这里介绍经典的灰度图像边缘检测方法。灰度图像的边缘是像素的灰度值发生变化的地方,这些变化通常
21、是屋顶变化或者阶跃变化,图像屋顶变化或者阶跃变化的大小一般用灰度图像一阶导数或二阶导数的大小来描述,所以灰度图像的边缘检测方法主要分为两大类:一阶微分图像边缘检测算子(如Roberts算子、Sobel算子、Prewitt算子)和二阶微分图像边缘检测算子(如Laplacian算子、LOG算子、Canny算子)。一般来讲,一个好的边缘检测算法应满足如下要求:(1)检测精度高;(2)抗噪能力强;(3)计算简单;(4)易于并行实现。其中最根本的问题是解决检测精度与抗噪声能力间的矛盾。从理论上讲,这两者之间存在着相互制约的互变关系,即不确定性原则。这一原则可表述为,一个信号不可能在时域和频域中任意高度集
22、中。因而边缘的定位精度和抗噪声能力不可能同时无限地提高,这两项指标的乘积为一常数,理论上可以通过改变空域形式来获得任意好的定位精度或信噪比,但不能两者都得到改善。因此,衡量一个检测方法的标准也不能只看某一指标的高低,而应考察其综合指标是否达到理论上的极限。虽然迄今已出现了众多的理论和方法,而且有些方法发展得相当成熟,但从这个意义上讲还没有一种普遍适于任何条件的最优算法。为此人们已将注意力放在研究更直接的、专用的和面向对象的视觉信息系统,如“主动视觉”,“定性视觉” 、“面向任务的视觉”等,通过强调场景和任务的约束、增加信息输入和降低对输出的要求等手段来降低视觉处理问题的难度。这些思想大大丰富和
23、补充了原来的理论,使算法向具体化、实用化方向发展,已成为视觉信息处理中有前途的发展方向3。2.2 MATLAB和图像处理工具箱的背景知识MATLAB对于技术计算来说是一种高性能语言。它以易于应用的环境集成了计算、可视化的编程,在该环境下,问题及其解以我们熟悉的数学表示法来表示。典型的应用包括如下方面4:(1)数学和计算(2)算法开发(3)数据获取(4)建模、模拟和原型设计(5)数据分析、研究和可视化(6)科学和工程图形(7)应用开发,包括图像用户界面构建MATLAB是一种交互式系统,其基本数据元素是并不要求确定维数的一个数组。这就允许人们用公式化方法求解许多技术计算问题,特别是涉及矩阵表示的问
24、题。有时,MATLAB可调用C或Fortran这类非交互式语言所编写的程序。在高等院校中,对于数学、工程和科学理论中的入门课程和高级课程,MATLAB都是标准的计算工具。图像处理工具箱是一个MATLAB函数(称为M函数或M文件)集,它扩展了MATLAB解决图像处理问题的能力。其他有时用于补充IPT的工具箱是信号处理、神经网络、模糊逻辑和小波工具箱。2.3 数字图像边缘检测关于边缘的定义边缘是不同区域的分界线,是图像局部强度变化最显著的那些像素的集合。图像强度的显著变化可分为:(1)阶跃变化(函数),即图像强度在不连续处的两边的像素灰度值有着显著差异;(2)线条(屋顶)变化(函数),即图像强度突
25、然从一个值变化到另一个值,保持一较小行程后又回到原来的值。边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,边缘是位于两个区域的边界线上的连续像素集合,在边缘处,灰度和结构等信息产生突变。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。2.4 基于一阶微分的边缘检测算子图像的局部边缘定义为两个强度明显不同的区域之间的过渡,图像的梯度函数即图像灰度变化的速率将在这些过度边界上存在最大值,通过基于梯度算子
26、或导数检测器来估计图像灰度变化的梯度方向,增加图像的这些变化区域,然后对该梯度进行阈值运算,如果梯度值大于某个给定门限,则存在边缘。再将被确定为边缘的像素连接起来,以形成包围着区域的封闭曲线。一阶导数可以用于检测图像中的一个点是否在斜坡上,二阶导数的符号可以用于判断一个边缘点是在边缘亮的一边还是暗的一边。两种常见的边缘一阶导数和二阶导数示意图5:(a) (b) 图2.1 (a)阶跃函数,(b)线条(屋顶)函数(第一行为理论曲线,第二行为实际曲线,第三行对应一阶导数,第四行对应二阶导数)一阶导数的二维等效式:(2-1)梯度的幅值:(2-2)和方向:(2-3)梯度是灰度在坐标方向上的导数,表示灰度
27、在坐标方向上的变化率。用差分来近似梯度(2-4)(2-5)2.4.1 Roberts算子(梯度交叉算子)Roberts算子是一种利用局部差分算子寻找边缘的算子5。(2-6)01-10用模板实现:100-1图2.2 Roberts算子的模板2.4.2 Sobel算子Sobel提出了一种将方差运算与局部平均相结合的方法,即Sobel算子,该算子在以为中心的领域上计算和方向的偏导数6。即(2-7)(2-8)上式应用了领域的图像强度的加权平均差值。用模板实现:121000-1-2-1-101-202-101图2.3 Sobel算子的模板2.4.3 Prewitt算子Prewitt提出的类似于Sobel
28、的计算偏微分估计值的方法7(2-9)(2-10)111000-1-1-1用模板实现:-101-101-101图2.4 Prewitt算子的模板2.5 基于二阶微分的边缘检测算子一阶微分是一种矢量,不但有其大小还有方向,和标量相比,它数据存储量大。另外,在具有相等斜率的宽区域上,有可能将全部区域都当做边缘提取出来。因此,有必要求出斜率的变化率,即对图像函数进行二阶微分运算。图像强度的二阶导数的零交叉点就是找到的边缘点7,如图2.5所示:图2.5 图像函数的二阶微分2.5.1 Laplacian算子Laplacian算子8利用二阶导数信息,具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯度结果不变
29、。使得图像经过二阶微分后,在边缘处产生一个陡峭的零交叉点,根据这个对零交叉点判断边缘。拉普拉斯算子是二阶导数的二维等效式:(2-11)上式应用Laplacian算子提取边缘的形式,及二阶偏导数的和,是一个标量,其离散计算形式定义为:(2-12)这一近似式是以点为中心的,用替换,则(2-13)同理:(2-14)对于一个的区域,经验上被推荐最多的形式,算子表示为:(2-15)2.5.2 LOG算子由于梯度算子和拉普拉斯算子都对噪声十分敏感,因而在检测前必须滤除噪声。Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成LOG(Laplacian-Gauss)算法。LOG边缘检测的基
30、本特征9为:(1)平滑滤波器是高斯滤波器;(2)增强步骤采用二阶导数(二维拉普拉斯函数);(3)边缘检测判据是二阶导数零交叉点并对应一阶导数的较大峰值;(4)使用线性内插方法在子像素分辨率水平上估计边缘的位置。该算子首先用高斯函数对图像作平滑滤波处理,然后才使用Laplacian算子检测边缘,因此克服了Laplacian算子抗噪声能力比较差的缺点,但是在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法被检测到。在实际应用中,常用的LOG算子是的模板:-2-4-4-4-2-4080-4-48248-4-4080-4-2-4-4-4-2图2.6 LOG算子的的模板该算法的
31、主要思路和步骤如下:(1)滤波:首先对图像进行平滑滤波,其滤波函数根据人类视觉特性选为高斯函数,即(2-16)其中,是一个圆对称函数,其平滑的作用是可通过来控制的。将图像与进行卷积,可以得到一个平滑的图像,即(2-17)(2)增强:对平滑图像进行拉普拉斯运算,即(2-18)(3)检测:边缘检测判据是二阶导数的零交叉点(即的点)并对应一阶导数的较大峰值。由于对平滑图像进行拉普拉斯运算可等效为的拉普拉斯运算与的卷积,故上式变为:(2-19)式中称为LOG滤波器,其可写为:(2-20)第3章 Canny边缘检测算法的改进与研究3.1 Canny边缘检测算法根据边缘检测的有效性和定位的可靠性,Cann
32、y研究了最优边缘检测器所需的特性,推导出最优边缘检测器的数学表达式。对于各种类型的边缘,Canny边缘检测算子的最优形式是不同的。3.1.1 Canny边缘检测基本原理Canny给出了评价边缘检测性能优劣的三个指标10-14:(1)好的信噪比,即将非边缘点判为边缘点的概率要低,边缘的漏检率要低;即,使输出的信噪比最大,定义信噪比SNR为:(3-1)其中代表边缘函数,代表宽度为的滤波器的脉冲响应,代表高斯噪声的均方差。信噪比越大,边缘检测效果越好。(2)好的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;(3-2)越大表明定位精度越高。(3)对单一边缘仅有唯一响应,即单个边缘产生多个响应的概
33、率要低,并且虚假边缘响应应得到最大抑制。为了保证单边缘只有一个响应,检测算子的脉冲响应导数的零交叉点平均距离应满足:(3-3)以上述指标为基础,利用泛函数求导的方法可导出Canny边缘检测器是信噪比和定位之乘积的最优逼近算子。将以上三个指标结合可获得最优的检测算子。3.1.2 Canny算法边缘检测步骤Canny算法边缘检测步骤514如下:(1)用高斯滤波器平滑图像;(2)用一阶偏导有限差分计算梯度幅值和方向;(3)对梯度幅值应用非极大值抑制;(4)用双阈值算法检测和连接边缘。3.1.3 Canny算法的流程图Canny算法的流程图15如图3.1所示:输出边缘 图像 输 入图 像高斯平滑梯度计
34、算非极大值抑制双门限检测图3.1 Canny算法的流程图(1)高斯平滑滤波器高斯平滑滤波器是一种线性滤波模板,模板各位置的权重是根据高斯分布函数确定的,由于高斯平滑滤波器的二维可分性(轴与轴方向进行高斯滤波互不干扰)。我们可以用两个一维高斯滤波器的连续卷积来实现一个二维高斯滤波器: 对图像使用一维高斯卷积模板,在一个方向上进行滤波(例如水平方向); 转置图像; 对转置以后的图像使用同一个高斯卷积模板,在垂直方向进行滤波; 将图像转置回原来位置,这样就得到经过二维滤波的图像。(2)使用一阶有限差分计算偏导数的两个阵列P与Q:(3-4)(3-5)幅值和方位角:(3-6)(3-7)(3)非极大值抑制
35、(NMS non-maxima suppression)细化幅值图像中的屋脊带,即只保留幅值局部变化最大的点。仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值,解决方法是利用梯度的方向。将梯度角的变化范围减小到圆周的四个扇区之一,方向角的规范化,如图3.2所示图3.2 方向角的规范化四个扇区的标号为0到3,对应邻域的四种可能组合。在每一点上,邻域的中心象素M与沿着梯度线的两个象素相比。如果M的梯度值不比沿梯度线的两个相邻象素梯度值大,则令M=0。这一过程可以把M宽屋脊带细化成只有一个像素点宽。在非极大值抑制过程中,保留了屋脊的高度值。(4)取阈值一般
36、而言,边缘信号的响应是比较少的,且是比较大的值,而噪声的响应是很多的但是值相对较小,那么阈值就可以通过滤波后的图像的统计累积直方图得到。对非极大值抑制幅值进行阈值化的结果是一个图像的边缘阵列。阈值化后得到的边缘阵列仍然有假边缘存在,原因是阈值太低(假正确),以及阴影的存在,使得边缘对比度减弱,或阈值取得太高而导致部分轮廓丢失(假错误)。选择合适的阈值是困难的,需要经过反复试验,为了解决这个问题,Canny提出了一种双阈值方法,首先利用累计统计直方图得到一个高阈值,然后再取一个低阈值。如果图像信号的响应大于高阈值,那么它一定是边缘;如果低于低阈值,那么它一定不是边缘;如果在低阈值和高阈值之间,我
37、们就看它的8个邻接像素有没有大于高阈值的边缘,如果有,那么它是边缘,否则它不是边缘。在使用Canny算法检测边缘时,高斯滤波器的标准差设为1,强边缘像素点占总像素和的0.3,高低阈值的比例为0.416。3.1.3 传统Canny算法的实验与分析通过传统的Canny算法边缘检测结果如图3.3所示:(a) (b) (c)图3.3 传统的Canny算法边缘检测结果,其中(a)Lena的原图,(b)Canny算法边缘检测结果,(c)被20%的椒盐噪声污染后,Canny算法边缘检测结果图3.3所示“Lena的原图”清晰度一般,行数和列数均是256,通过多种滤波器检测,可知该图已被多种噪声污染(即,包含高
38、斯噪声、椒盐噪声、周期噪声等等4),而Canny算法所采用的是高斯平滑滤波器。由图3.3(c)边缘检测结果显示,高斯平滑滤波器对椒盐噪声滤波效果很差,从而导致边缘检测出现极多的假边缘,而图3.3(b)未被人工干预的椒盐噪声污染,检测效果相对而言少去了椒盐噪声产生的假边缘,从而说明了边缘检测中对噪声滤波的重要性。在另一方面,通过传统的Canny算法边缘检测,对应Canny给出的评价边缘检测性能优劣的三个指标,图3.3(b)中的效果反应了传统的Canny算法不能给出满意的结果,而这一方面源于高斯平滑滤波器的滤波效果,另一方面则是阈值的选取,在Canny算法中基于直方图人工选取阈值可以得到不错的边缘
39、检测效果,但会付出相当的时间和人力代价。3.2 基于Canny算法的改进与研究3.2.1 自适应中值滤波器自适应中值滤波器4可以根据被滤波区域的图像特性来改进结果,设表示一个被处理的、中心在处的子图像,在Gonzalez and Woods2002中详细说明的算法如下所示:令表示中的最小亮度值,表示中的最大亮度值,表示中的亮度中值,表示坐标处的亮度值。这个自适应中值滤波算法工作在两个层面,表示为levelA和levelB:levelA: 若,则转向levelB,否则增加窗口尺寸,若窗口尺寸,重复levelA,否则输出;levelB:若,则输出,否则输出。其中,表示允许的最大自适应滤波器窗口的大
40、小。levelA最后一步的另一种选择是输出来代替中值。通过给原图添加20%的椒盐噪声,然后分别在Matlab中调用中值滤波函数和编写好的自适应中值滤波函数给被噪声污染的图片进行滤波去噪,如图所示:(a) (b)(c) (d)图3.4对图像进行平滑滤波的几种算法的实验结果比较,其中(a)Lena的原图,(b)被20%的椒盐噪声污染后Lena的图,(c)通过中值滤波后Lena的图,(d)通过自适应中值滤波后Lena的图对于受椒盐噪声污染的图片,传统的中值滤波一般能够取得较好的效果,通过图3.4(c)显示,图中依然存在椒盐噪声所导致的污染,而这就会给后续的取阈值及边缘检测随着噪声污染的程度带来不同程
41、度的影响,从而影响整个算法的效果,由图3.4(d)显示,说明自适应中值滤波器能够很好地滤去椒盐噪声,取得不错的效果。3.2.2 最大类间方差法最大类间方差法17-18是由日本学者大津展之于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称Otsu。它是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。对于图像,前景(即目标)和背景的分割阈值记作,属于前景的像素点数占整幅图像的比例记为,其平均灰度;背景像素点数占整幅
42、图像的比例为,其平均灰度为。图像的总平均灰度记为,类间方差记为。假设图像的背景较暗,并且图像的大小为,图像中像素的灰度值小于阈值的像素个数记作,像素灰度大于阈值的像素个数记作则有:(3-8)(3-9)(3-10)(3-11)(3-12)(3-13)将式(5)代入式(6),得到等价公式:(3-14)采用遍历的方法得到使类间方差最大的阈值1417-21,即为所求。3.2.3 顶帽变换Otsu算法属于全局阈值处理方法,在图像背景照明不均时有可能无效。在这种情况下,一种常用的处理方法是针对照明问题做预处理以补偿图像,然后再采用Otsu算法(全局阈值处理方法)计算最佳阈值。预处理以补偿图像可应用一个形态
43、学算子,即顶帽算子4。下面的实验是通过给一张行数和列数均是1024,受污染程度极小的图片(原图已在图3.4(a)中给出)添加20%的椒盐噪声后,再分别采用传统的Canny算法做边缘检测,经过自适应中值滤波后采用Canny算法做边缘检测,自适应中值滤波、Otsu算法取阈值,然后调用Canny算子检测边缘,自适应中值滤波、顶帽变换、Otsu算法取阈值,然后调用Canny算子检测边缘,结果如图3.5所示: (a) (b) (c) (d) (e) (f) (g) (h) (i)图3.5 中间数据图,其中(a)被20%的椒盐噪声污染后Lena的图;(b)椒盐噪声污染后,通过Canny算法检测边缘的结果;
44、(c)自适应中值滤波后,通过Canny算法检测边缘的结果;(d)自适应中值滤波、Otsu算法取阈值,然后调用Canny算子检测边缘的结果;(e)自适应中值滤波、顶帽变换、Otsu算法取阈值,然后调用Canny算子检测边缘的结果;(f)Rice的原图;(g)椒盐噪声污染后,通过Canny算法检测边缘;(h)自适应中值滤波、Otsu算法取阈值,然后调用Canny算子检测边缘的结果;(i)自适应中值滤波、顶帽变换、Otsu算法取阈值,然后调用Canny算子检测边缘的结果3.2.4 传统Canny算法与本文算法的实验结果与分析(a)(b)(c)图3.6传统Canny算法与本文算法的实验结果,其中(a)
45、我的书桌,(b)Canny算法检测的结果,(c)本文算法的检测结果通过对图3.5(a-e)结果进行对比分析,很明显传统Canny算法所采用的高斯平滑滤波器对椒盐噪声无效,而通过自适应中值滤波后,Canny算法的检测效果得到了很大的改善,但图3.5(c)中依然存在不少假边缘,使得检测效果较为模糊;图3.5(d)(e)所反映的检测效果就几乎不存在假边缘,对主体的反映非常明显,这也就说明了Otsu算法取阈值的优越性。图3.5(f-i)的结果显示也进一步支持这方面的论证。图3.6(a)的摄制受到光照不均、电机噪声(周期噪声)等多种噪声影响,通过对比图3.6(b)(c)的检测效果,可以说明在边缘检测中,对噪声处理的重要性,这里自适应中值滤波不仅消除椒盐噪声,并对原图有一定的平滑作用,结合顶帽变换对因受光照不均的图像进行预处理,使得可以有效使用Otsu算法取阈值,从而得到较好的检测效果。第4章 总 结近几十年来,图像边缘检测技术成为数字图像处理技术重要研究课题