搜档网
当前位置:搜档网 › 基于matlab的图像边缘检测算法研究

基于matlab的图像边缘检测算法研究

本科毕业设计(论文)

题目:基于matlab的图像边缘

检测算法研究

学院:信息工程学院

专业:自动化

学号:

学生姓名:

指导教师:

二○一年五月二十三日

2013届毕业设计(论文)

基于matlab的图像边缘检测算法研究

摘要

图像的边缘检测技术是数字图像处理技术的基础研究内容,是物体识别的重要基础。现有边缘检测技术在抑制噪声方面有一定的局限性,在阈值参数选取方面自适应能力很差,有待进一步改进和提高。

本论文首先介绍了图像边缘检测这个课题的意义和背景;作为理论基础,在第二章简单的介绍了传统的图像边缘检测算法,如Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG算子,回顾了经典的边缘检测算法,为后面介绍Canny算法作为铺垫。在第三章,结合Canny算法的基本原理、算法的三个标准、算法的思路及检测步骤提出了对Canny算子中的图像滤波平滑处理及取阈值的算法进行改进的方法,并进行了实验检验。

基于传统Canny算法中采用高斯滤波器对图像滤波平滑处理的效果有待改进,本论文引用了自适应中值滤波器,在使用Canny算法之前,对图像进行滤波,通过图3.4的结果显示,检测效果明显改善;而在取阈值时,在使用Otsu算法的基础上,采用顶帽算子对图像进行预处理以补偿图像,这样能取得更合适的阈值;图3.5和图3.6检测结果分别在滤波器、阈值两个方面进行了实验的比较,并与传统的Canny算法的检测结果进行了对比,显示出了本文所采用的改进算法的优越性。

关键词:边缘检测;Canny算子;自适应中值滤波器;Otsu算法;顶帽算子

基于matlab的图像边缘检测算法研究

Research on image edge detection algorithms based

on MATLAB

ABSTRACT

Image 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 capacity 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, Prewitt 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 improved 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 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 threshold; 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 detection; Canny operator; adaptive median filter; Otsu algorithm; Top-Hat operator

2013届毕业设计(论文)

目录

第1章绪论 (1)

§1.1 序言 (1)

§1.2 数字图像边缘检测算法的意义 (1)

§1.3 本文的主要章节安排 (2)

第2章传统边缘检测方法及理论基础 (3)

§2.1 数字图像边缘检测的现状与发展 (3)

§2.2 MATLAB和图像处理工具箱的背景知识 (4)

§2.3 数字图像边缘检测关于边缘的定义 (4)

§2.4 基于一阶微分的边缘检测算子 (5)

§2.4.1 Roberts算子(梯度交叉算子) (6)

§2.4.2 Sobel算子 (6)

§2.5 基于二阶微分的边缘检测算子 (7)

§2.5.1 Laplacian算子 (8)

§2.5.2 LOG算子 (9)

第3章 Canny边缘检测算法的改进与研究 (11)

§3.1 Canny边缘检测算法 (11)

§3.1.1 Canny边缘检测基本原理 (11)

§3.1.2 Canny算法边缘检测步骤 (12)

§3.1.3 Canny算法的流程图 (12)

§3.1.3 传统Canny算法的实验与分析 (14)

§3.2 基于Canny算法的改进与研究 (14)

基于matlab的图像边缘检测算法研究

§3.2.1 自适应中值滤波器 (14)

§3.2.2 最大类间方差法 (15)

§3.2.3 顶帽变换 (16)

§3.2.4 传统Canny算法与本文算法的实验结果与分析 (18)

第4章总结 (20)

致谢 (21)

参考文献 (21)

2013届毕业设计(论文)

第1章绪论

§1.1 序言

理解图像和识别图像中的目标是计算机视觉研究的中心任务,物体形状、物体边界、位置遮挡、阴影轮廓及表面纹理等重要视觉信息在图像中均有边缘产生。图像边缘是分析理解图像的基础,它是图像中最基本的特征。在Marr的计算机视觉系统中,图像边缘提取占据着非常重要位置,它位于系统的最底层,为其它模块所依赖。图像边缘提取作为计算机视觉领域最经典的研究课题,长期受到人们的重视。

图像边缘主要划分为阶跃状和屋脊状两种类型。阶跃状边缘两侧的灰度值变化明显,屋脊状边缘则位于灰度增加与减少的交界处。传统的图像边缘检测方法大多是从图像的高频分量中提取边缘信息,微分运算是边缘检测与提取的主要手段。由于传统的边缘检测方法对噪声敏感,所以实际运用效果有一定的局限性。近年来,越来越多的新技术被引入到边缘检测方法中,如数学形态学、小波变换、神经网络和分形理论等。

Canny于1986年提出基于最优化算法的边缘检测算子,得到了广泛的应用,并成了与其它实验结果作比较的标准。其原因在于他最先建立了优化边缘检测算子的理论基础,提出了迄今为止定义最为严格的边缘检测的三个标准。另外其相对简单的算法使得整个过程可以在较短的时间内实现。实验结果也表明,Canny算子在处理受加性高斯白噪声污染的图像方面获得了良好的效果[1]。

§1.2 数字图像边缘检测算法的意义

数字图像处理是控制领域的重要课题,数字图像边缘检测是图像分割、目标区域识别和区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要方法。边缘中包含图像物体有价值的边界信息,这些信息可以用于图像理解和分析,并且通过边缘检测可以极大地降低后续图像分析和处理的数据量。图像理解和分析的第一步往往就是边缘检测,目前它已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。

图像的边缘检测技术是数字图像处理技术的基础研究内容,是物体识别的重要基础。边缘特征广泛应用于图像分割、运动检测与跟踪、工业检测、目标识别、双目立体视觉等领域。现有边缘检测技术在抑制噪声方面有一定的局限性,在阈值参数选取方面

基于matlab的图像边缘检测算法研究

自适应能力很差,有待进一步改进和提高。(1)多谱图像是图像配准技术中的一个难点,传统的图像配准技术只适用于同源图像,由于红外图像和可见光遥感图像的成像波段不同,对于同一场景,所采集到的图像的差异很大。在此课题中,作者首先通过边缘检测,得到红外图像与遥感可见光图像的边缘图像,再通过尺度不变特征匹配,就能得到红外图像与可见光遥感图像之间的透视变换关系,从而成功完成了多谱图像配准[2]。(2)在“货运列车动态图像故障检测系统(TFDS,Trouble Of Moving Freight Car Detection system)中的故障识别”的课题中,作者采用水平Sobel算子检测边缘,对边缘图像进行水平方向投影,计算得到货运列车底部心盘螺栓大致区域的图像,然后用Harris算子得到一些候选故障区域,最后通过相关匹配来识别故障。(3)在“基于双目立体视觉的人体动作捕捉系统”的课题中,利用图像的边缘和深度信息从视频中分割出人体前景图像。因此对图像边缘检测技术理论及其应用进行研究都有很重要的意义。

§1.3 本文的主要章节安排

本论文首先在第一章介绍了这个课题的意义和背景;在第二章简单的介绍了传统的图像边缘检测算法,如Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG 算子作为理论基础,回顾经典的边缘检测算法,也反映了研究本课题的重要性和深度;在第三章着重介绍Canny算法的基本原理、算法的三个标准、算法的思路及检测步骤,也就是本论文的基本思想,在此基础上分别对Canny算子的图像滤波及取阈值的算法进行改进,并与传统的Canny算法的检测结果进行了对比,显示出了本文所采用的改进算法的优越性,同时基于实验结果给出了分析和结论以及不足之处;在第四章,对整个论文的设计进行了总结。

2013届毕业设计(论文)

第2章传统边缘检测方法及理论基础

§2.1 数字图像边缘检测的现状与发展

在数字图像处理中,边缘特征是图像的重要特征之一,是图像处理、模式识别和计算机视觉的重要组成部分之一,图像边缘检测的结果直接影响进一步图像处理、模式识别的效果。

近几十年来,图像边缘检测技术成为数字图像处理技术重要研究课题之一,随着科学技术的发展,研究人员提出了很多图像边缘检测方法及边缘检测效果的评价方法,并且将这些边缘检测技术应用于计算机视觉和模式识别工程领域,使得边缘检测技术的应用范围越来越广,图像的边缘一般是图像的灰度或者颜色发生剧烈变化的地方,而这些变化往往是由物体的结构和纹理,外界的光照和物体的表面对光的反射造成的。图像的边缘反映了物体的外观轮廓特征,是图像分析和模式识别的重要特征,数字图像处理技术是一门交叉学科,数学理论、人工智能、视觉生理学和心理学等各种理论为边缘检测技术研究注入新的活力,涌现出很多边缘检测理论和方法。根据边缘检测所处理的图像类型,可分为两大类:灰度图像边缘检测方法和彩色图像边缘检测方法。基于本论文仅研究讨论灰度图像边缘检测,这里介绍经典的灰度图像边缘检测方法。

灰度图像的边缘是像素的灰度值发生变化的地方,这些变化通常是屋顶变化或者阶跃变化,图像屋顶变化或者阶跃变化的大小一般用灰度图像一阶导数或二阶导数的大小来描述,所以灰度图像的边缘检测方法主要分为两大类:一阶微分图像边缘检测算子(如Roberts算子、Sobel算子、Prewitt算子)和二阶微分图像边缘检测算子(如Laplacian 算子、LOG算子、Canny算子)。

一般来讲,一个好的边缘检测算法应满足如下要求:(1)检测精度高;(2)抗噪能力强;(3)计算简单;(4)易于并行实现。其中最根本的问题是解决检测精度与抗噪声能力间的矛盾。从理论上讲,这两者之间存在着相互制约的互变关系,即不确定性原则。这一原则可表述为,一个信号不可能在时域和频域中任意高度集中。因而边缘的定位精度和抗噪声能力不可能同时无限地提高,这两项指标的乘积为一常数,理论上可以通过改变空域形式来获得任意好的定位精度或信噪比,但不能两者都得到改善。因此,衡量一个检测方法的标准也不能只看某一指标的高低,而应考察其综合指标是否达到理论上的极限。虽然迄今已出现了众多的理论和方法,而且有些方法发展得相当成熟,但从这

基于matlab的图像边缘检测算法研究

个意义上讲还没有一种普遍适于任何条件的最优算法。为此人们已将注意力放在研究更直接的、专用的和面向对象的视觉信息系统,如“主动视觉”,“定性视觉”、“面向任务的视觉”等,通过强调场景和任务的约束、增加信息输入和降低对输出的要求等手段来降低视觉处理问题的难度。这些思想大大丰富和补充了原来的理论,使算法向具体化、实用化方向发展,已成为视觉信息处理中有前途的发展方向[3]。

§2.2 MATLAB和图像处理工具箱的背景知识

MATLAB对于技术计算来说是一种高性能语言。它以易于应用的环境集成了计算、可视化的编程,在该环境下,问题及其解以我们熟悉的数学表示法来表示。典型的应用包括如下方面[4]:

(1)数学和计算

(2)算法开发

(3)数据获取

(4)建模、模拟和原型设计

(5)数据分析、研究和可视化

(6)科学和工程图形

(7)应用开发,包括图像用户界面构建

MATLAB是一种交互式系统,其基本数据元素是并不要求确定维数的一个数组。这就允许人们用公式化方法求解许多技术计算问题,特别是涉及矩阵表示的问题。有时,MATLAB可调用C或Fortran这类非交互式语言所编写的程序。

在高等院校中,对于数学、工程和科学理论中的入门课程和高级课程,MATLAB 都是标准的计算工具。图像处理工具箱是一个MATLAB函数(称为M函数或M文件)集,它扩展了MATLAB解决图像处理问题的能力。其他有时用于补充IPT的工具箱是信号处理、神经网络、模糊逻辑和小波工具箱。

§2.3 数字图像边缘检测关于边缘的定义

边缘是不同区域的分界线,是图像局部强度变化最显著的那些像素的集合。图像强度的显著变化可分为:

(1)阶跃变化(函数),即图像强度在不连续处的两边的像素灰度值有着显著差异;

2013届毕业设计(论文)

(2)线条(屋顶)变化(函数),即图像强度突然从一个值变化到另一个值,保持一较小行程后又回到原来的值。

边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,边缘是位于两个区域的边界线上的连续像素集合,在边缘处,灰度和结构等信息产生突变。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。

图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。

§2.4 基于一阶微分的边缘检测算子

图像的局部边缘定义为两个强度明显不同的区域之间的过渡,图像的梯度函数即图像灰度变化的速率将在这些过度边界上存在最大值,通过基于梯度算子或导数检测器来估计图像灰度变化的梯度方向,增加图像的这些变化区域,然后对该梯度进行阈值运算,如果梯度值大于某个给定门限,则存在边缘。再将被确定为边缘的像素连接起来,以形成包围着区域的封闭曲线。

一阶导数可以用于检测图像中的一个点是否在斜坡上,二阶导数的符号可以用于判断一个边缘点是在边缘亮的一边还是暗的一边。

[5]

图2.1 (a)阶跃函数,(b)线条(屋顶)函数(第一行为理论曲线,第二行为实际曲线,第三行对应一阶导数,第四行对应二阶导数)

基于matlab 的图像边缘检测算法研究

一阶导数的二维等效式:

(,)f x x f y y G G x y G ?????????==?????????? (2-1) 梯度的幅值:

|(,)|G x y =(2-2) 和方向:

(,)arctan(/)y x x y G G α= (2-3)

梯度是灰度(,)f x y 在X Y 坐标方向上的导数,表示灰度(,)f x y 在X Y 坐标方向上的变化率。

用差分来近似梯度

=(1,)(,)x G f x y f x y +- (2-4) (,1)(,)y G f x y f x y =+- (2-5) §2.4.1 Roberts 算子(梯度交叉算子)

Roberts 算子是一种利用局部差分算子寻找边缘的算子[5]。 (,)(,)(1,1)(1,)(,1)G x y f x y f x y f x y f x y =-++++-+

(2-6)

用模板实现:

§2.4.2 Sobel 算子 Sobel 提出了一种将方差运算与局部平均相结合的方法,即Sobel 算子,该算子在以(,)f x y 为中心的领域上计算X 和Y 方向的偏导数[6]

图2.2 Roberts 算子的模板

2013届毕业设计(论文)

={(1,1)2(1,)(1,1)}{(1,1)2(1,)(1,1)}

x S f x y f x y f x y f x y f x y f x y +-+++++-

--+-+-+ (2-7) ={(1,1)2(,1)(1,1)}{(1,1)2(,1)(1,1)}

y S f x y f x y f x y f x y f x y f x y -++++++-

--+-++- (2-8)

上式应用了(,)f x y 领域的图像强度的加权平均差值。

用模板实现:

§2.4.3 Prewitt 算子

Prewitt 提出的类似于Sobel 的计算偏微分估计值的方法[7]

={(1,1)(1,)(1,1)}{(1,1)(1,)(1,1)}

x P f x y f x y f x y f x y f x y f x y +-+++++-

--+-+-+ (2-9) ={(1,1)(,1)(1,1)}{(1,1)(,1)(1,1)}

y P f x y f x y f x y f x y f x y f x y -++++++-

--+-++- (2-10)

用模板实现:

图2.4 Prewitt 算子的33?模板

§2.5 基于二阶微分的边缘检测算子

一阶微分是一种矢量,不但有其大小还有方向,和标量相比,它数据存储量大。另外,在具有相等斜率的宽区域上,有可能将全部区域都当做边缘提取出来。因此,有必要求出斜率的变化率,即对图像函数进行二阶微分运算。

图2.3 Sobel 算子的33?模板

基于matlab 的图像边缘检测算法研究

图像强度的二阶导数的零交叉点就是找到的边缘点[7],如图2.5所示:

§2.5.1 Laplacian 算子

Laplacian 算子[8]利用二阶导数信息,具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯度结果不变。使得图像经过二阶微分后,在边缘处产生一个陡峭的零交叉点,根据这个对零交叉点判断边缘。拉普拉斯算子是二阶导数的二维等效式:

22222(,)(,)=f x y f x y f x y ?????+(x,y ) (2-11)

上式应用Laplacian 算子提取边缘的形式,及二阶偏导数的和,是一个标量,其离散计算形式定义为:

22=([1,][,])[1,][,][2,]2[1,][,]x G f x x f x y f x y x

f x y f x y x x

f x y f x y f x y ??????????+-=+=-=+-++ (2-12)

这一近似式是以点[1,]x y +为中心的,用-1x 替换x ,则

22[1,]2[,][1,]f f x y f x y f x y x ??=+-+- (2-13)

2013届毕业设计(论文)

同理: 22=[,1]2[,][,1]f f x y f x y f x y y

??+-+- (2-14)

对于一个33?的区域,经验上被推荐最多的形式,算子表示为: 2010141010?????≈-?????? (2-15) §2.5.2 LOG 算子

由于梯度算子和拉普拉斯算子都对噪声十分敏感,因而在检测前必须滤除噪声。Marr 和Hildreth 将高斯滤波和拉普拉斯边缘检测结合在一起,形成LOG(Laplacian-Gauss)算法。LOG 边缘检测的基本特征[9]

为:

(1)平滑滤波器是高斯滤波器;

(2)增强步骤采用二阶导数(二维拉普拉斯函数);

(3)边缘检测判据是二阶导数零交叉点并对应一阶导数的较大峰值;

(4)使用线性内插方法在子像素分辨率水平上估计边缘的位置。

该算子首先用高斯函数对图像作平滑滤波处理,然后才使用Laplacian 算子检测边缘,因此克服了Laplacian 算子抗噪声能力比较差的缺点,但是在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法被检测到。

在实际应用中,常用的LOG 算子是55?的模板:

图2.6 LOG 算子的55?的模板

该算法的主要思路和步骤如下:

(1)滤波:首先对图像),(y x f 进行平滑滤波,其滤波函数根据人类视觉特性选为高斯函数,即

基于matlab 的图像边缘检测算法研究

222211(,)exp ()22G x y x y πσπσ??=-+ ??? (2-16)

其中,(,)G x y 是一个圆对称函数,其平滑的作用是可通过σ来控制的。将图像),(y x G 与),(y x f 进行卷积,可以得到一个平滑的图像,即

(,)(,)(,)g x y f x y G x y =* (2-17)

(2)增强:对平滑图像),(y x g 进行拉普拉斯运算,即

()2(,)(,)(,)h x y f x y G x y =?* (2-18)

(3)检测:边缘检测判据是二阶导数的零交叉点(即(,)0h x y =的点)并对应一阶导数的较大峰值。

由于对平滑图像),(y x g 进行拉普拉斯运算可等效为),(y x G 的拉普拉斯运算与),(y x f 的卷积,故上式变为:

2(,)(,)(,)h x y f x y G x y =*?

(2-19)

式中),(2y x G ?称为LOG 滤波器,其可写为: ()22222222242211(,)=+=1exp 22G G x y G x y x y x y πδδδ????+???--+ ? ??????? (2-20)

2013届毕业设计(论文)

第3章 Canny 边缘检测算法的改进与研究

§3.1 Canny 边缘检测算法

根据边缘检测的有效性和定位的可靠性,Canny 研究了最优边缘检测器所需的特性,推导出最优边缘检测器的数学表达式。对于各种类型的边缘,Canny 边缘检测算子的最优形式是不同的。

§3.1.1 Canny 边缘检测基本原理

Canny 给出了评价边缘检测性能优劣的三个指标[10-14]:

(1)好的信噪比,即将非边缘点判为边缘点的概率要低,边缘的漏检率要低;即,使输出的信噪比最大,定义信噪比SNR 为:

|()()|

W

G x h x dx SNR +-(3-1)

其中()G x 代表边缘函数,()h x 代表宽度为W 的滤波器的脉冲响应,σ代表高斯噪声的均方差。信噪比越大,边缘检测效果越好。

(2)好的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;

''|()()|

W

G x h x dx Localization +-= (3-2) Localization 越大表明定位精度越高。 (3)对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假边缘响应应得到最大抑制。为了保证单边缘只有一个响应,检测算子的脉冲响应导数的零交叉点平均距离'()D f 应满足: 1/2'2'''()()()w w h x dx D f h x dx π+∞-∞+-????=???????? (3-3)

以上述指标为基础,利用泛函数求导的方法可导出Canny 边缘检测器是信噪比和定位之乘积的最优逼近算子。将以上三个指标结合可获得最优的检测算子。

基于matlab 的图像边缘检测算法研究

§3.1.2 Canny 算法边缘检测步骤

Canny 算法边缘检测步骤[5][14]如下:

(1)用高斯滤波器平滑图像;

(2)用一阶偏导有限差分计算梯度幅值和方向;

(3)对梯度幅值应用非极大值抑制;

(4)用双阈值算法检测和连接边缘。

§3.1.3 Canny 算法的流程图

Canny 算法的流程图[15]如图3.1所示:

图3.1 Canny 算法的流程图

(1)高斯平滑滤波器

高斯平滑滤波器是一种线性滤波模板,模板各位置的权重是根据高斯分布函数确定的,由于高斯平滑滤波器的二维可分性(轴与轴方向进行高斯滤波互不干扰)。我们可以用两个一维高斯滤波器的连续卷积来实现一个二维高斯滤波器:

① 对图像使用一维高斯卷积模板,在一个方向上进行滤波(例如水平方向);

② 转置图像;

③ 对转置以后的图像使用同一个高斯卷积模板,在垂直方向进行滤波;

④ 将图像转置回原来位置,这样就得到经过二维滤波的图像。

(2)使用一阶有限差分计算偏导数的两个阵列P 与Q :

[,]([,1][,][1,1][1,])/2P y x S y x S y x S y x S y x ≈+-+++-+ (3-4) [,]([1,][,][1,1][,1])/2Q y x S y x S y x S y x S y x ≈+-+++-+ (3-5)

幅值和方位角:

[

],M y x =(3-6)

[,]arctan([,]/[,])y x Q y x P y x θ=

(3-7)

2013届毕业设计(论文)

(3)非极大值抑制(NMS non-maxima suppression )

细化幅值图像中的屋脊带,即只保留幅值局部变化最大的点。仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值,解决方法是利用梯度的方向。

将梯度角的变化范围减小到圆周的四个扇区之一,方向角的规范化,如图3.2所示

图3.2 方向角的规范化

四个扇区的标号为0到3,对应33 邻域的四种可能组合。在每一点上,邻域的中心象素M 与沿着梯度线的两个象素相比。如果M 的梯度值不比沿梯度线的两个相邻象素梯度值大,则令M=0。这一过程可以把M 宽屋脊带细化成只有一个像素点宽。在非极大值抑制过程中,保留了屋脊的高度值。

(4)取阈值

一般而言,边缘信号的响应是比较少的,且是比较大的值,而噪声的响应是很多的但是值相对较小,那么阈值就可以通过滤波后的图像的统计累积直方图得到。对非极大值抑制幅值进行阈值化的结果是一个图像的边缘阵列。阈值化后得到的边缘阵列仍然有假边缘存在,原因是阈值太低(假正确),以及阴影的存在,使得边缘对比度减弱,或阈值取得太高而导致部分轮廓丢失(假错误)。选择合适的阈值是困难的,需要经过反复试验,为了解决这个问题,Canny 提出了一种双阈值方法,首先利用累计统计直方图得到一个高阈值1t ,然后再取一个低阈值2t 。如果图像信号的响应大于高阈值,那么它一定是边缘;如果低于低阈值,那么它一定不是边缘;如果在低阈值和高阈值之间,我们就看它的8个邻接像素有没有大于高阈值的边缘,如果有,那么它是边缘,否则它不是边缘。在使用Canny 算法检测边缘时,高斯滤波器的标准差设为1,强边缘像素点占总像素和的0.3,高低阈值的比例为0.4[16]。

1(225) 2(270)

3(315) )0(0 2(90))45(1 )135(3 0(180)

基于matlab的图像边缘检测算法研究§3.1.3 传统Canny算法的实验与分析

通过传统的Canny

算法边缘检测结果如图3.3

所示:

(a)(b)(c)

图3.3 传统的Canny算法边缘检测结果,其中(a)Lena的原图,(b)Canny算法边缘检测结果,(c)被20%的椒盐噪声污染后,Canny算法边缘检测结果

图3.3所示“Lena的原图”清晰度一般,行数和列数均是256,通过多种滤波器检

测,可知该图已被多种噪声污染(即,包含高斯噪声、椒盐噪声、周期噪声等等[4]),而

Canny算法所采用的是高斯平滑滤波器。由图3.3(c)边缘检测结果显示,高斯平滑滤

波器对椒盐噪声滤波效果很差,从而导致边缘检测出现极多的假边缘,而图3.3(b)未

被人工干预的椒盐噪声污染,检测效果相对而言少去了椒盐噪声产生的假边缘,从而说

明了边缘检测中对噪声滤波的重要性。在另一方面,通过传统的Canny算法边缘检测,

对应Canny给出的评价边缘检测性能优劣的三个指标,图3.3(b)中的效果反应了传统

的Canny算法不能给出满意的结果,而这一方面源于高斯平滑滤波器的滤波效果,另一

方面则是阈值的选取,在Canny算法中基于直方图人工选取阈值可以得到不错的边缘检

测效果,但会付出相当的时间和人力代价。

§3.2基于Canny算法的改进与研究

§3.2.1 自适应中值滤波器

自适应中值滤波器[4]可以根据被滤波区域的图像特性来改进结果,设

xy

S表示一个被处理的、中心在(,)

x y处的子图像,在Gonzalez and Woods[2002]中详细说明的算法如下

所示:

min

Z表示

xy

S中的最小亮度值,

max

Z表示

xy

S中的最大亮度值,

m ed

Z表示

xy

S中的亮

度中值,

xy

Z表示坐标(,)

x y处的亮度值。

这个自适应中值滤波算法工作在两个层面,表示为levelA和levelB:

相关主题