《毕业设计论文数字图像边缘检测的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文数字图像边缘检测的设计.doc(36页珍藏版)》请在三一办公上搜索。
1、苏州大学本科生毕业设计目录中英文摘要 (3)前言 (5)第一章 概述 (6) 第一节 数字图像处理概念及其特点 (6) 第二节 数字图像处理研究的主要内容 (6) 第三节 课题研究的背景和意义 (7) 第四节 论文的总体结构 (9)第二章 边缘检测的基本概念(9) 第一节 数学基础 (9) 1微分算子(9) 2有限区域的卷积(9)第二节 边缘定义及类型分析(11)1 定义(11) 2 类型分析(11) 第三节 边缘检测的一般步骤(11)第三章 边缘检测算法综述 (13)第一节 概述(13) 第二节 一阶导数边缘检测算法 (13) 1. Roberts梯度算子(13) 2. Prewitt和So
2、bel算子(14) 3. 方向算子-Kirsch 算子 (16) 第三节 二阶导数边缘检测算法(17) 1. laplace算子 (17) 2. 高斯拉普拉斯算子 (18)第四章 算法的VC+实现和结果分析 (20) 第一节Visual C+ MFC 编程的简单说明 (20) 第二节 算法的结果 (21)第五章 结论(24)参考文献(25)致谢(26)附录A Template() (27)附录B 主界面程序 (34)摘 要数字图像处理技术起源于20世纪20年代,经过近一个世纪的发展,目前已经广泛地应用于工业、医疗保健、航空航天、军事的各个领域,在国民经济中发挥着越来越大的作用。在图像处理技术中
3、,许多场合都要求用计算机进行图像描述并对图像进行分析和理解。例如,对于大规模集成电路的自动检测过程,要求对图像进行分析以得到芯片图像中有关疵点的描述;对于医学癌细胞识别来说,要求能够从显微镜中得到有关癌细胞形状的描述。诸如此类的图像处理应用领域都要用到图像的分析和理解技术。边缘在边缘检测、图像分割、模式识别、机器视觉等中有很重要的作用。边缘是边缘检测的重要基础,也是外形检测的基础。边缘检测算子检查每个像素的领域并对灰度变化率进行量化,也包括方向的确定。大多数使用基于方向导数掩模求卷积的方法。最早提出了一些基于梯度的边缘检测算子,例如Roberts算子、Prewitt算子、Sobel算子、Kir
4、sch算子等,还有一些其他算子,如最优算子是在经典边缘检测算子的基础上发展起来的,这类方法是根据信噪比求得检测边缘的最优滤波器,为提高传统算子的抗噪性能,如高斯拉普拉斯算子。最后用VC+来实现各种算法,并比较各算法。关键词:图像处理、边缘检测、算法、卷积AbstractDigital image processing techniques originated in the 1920s, after more than half a century of development, has been widely used in industry, medical care, aerospace
5、, military each domain, the national economy in China is playing the more and more major role. In image processing technology, many occasions require image description and with a computer analysis and understanding of image. For example, for large-scale integrated circuits, the automatic detection p
6、rocess to analyze requirements to get chip image in the description of the defect image; For medical cancer cells from it, requirement can be identified by a relevant microscope of describing the shape of cancer cells. Such image processing applications with image analysis and understanding of the t
7、echnology.Edge over the edge detection, image segmentation, pattern recognition and machine vision has very important role. Edge is the important foundation for edge detection, is also the basis of shape detection. Edge detection operators check every pixel fields and grayscale rate, also includes q
8、uantitative determination of direction. Most use based on directional derivative deconvolution method for masking. The earliest puts forward some of edge detection based on gradient, such as Roberts operator, operator Prewitt operator, Sobel operator, Kirsch operator, optimal operator in classical e
9、dge detection operator is developed on the basis of, this kind of method is obtained according to the signal-to-noise ratio of edge detection for improving the optimal filter, the traditional operator function of noise, such as gaussian Laplace operator. Finally by vc + + to achieve various algorith
10、ms, and compare various algorithms.Keywords:Image processing, edge detection, algorithm, convolution前言数字图像处理技术起源于20世纪20年代,经过半个多世纪的发展,目前已经广泛地应用于工业、医疗保健、航空航天、军事的各个领域,在国民经济中发挥着越来越大的作用。随着信息高速公路、数字化地球概念的提出以及因特网的飞速发展,数字图像以其信息量大,传输速度快,作用距离远等一系列优点必将成为人类获取信息的重要来源。因此,数字图像处理科学与技术逐步向其他学科领域渗透,并为其他学科所利用是科学发展的必然趋势
11、。在图像处理技术中,许多场合都要求用计算机进行图像描述并对图像进行分析和理解。例如,对于大规模集成电路的自动检测过程,要求对图像进行分析以得到芯片图像中有关疵点的描述;对于医学癌细胞识别来说,要求能够从显微镜中得到有关癌细胞形状的描述。诸如此类的图像处理应用领域都要用到图像的分析和理解技术。边缘在边缘检测、图像分割、模式识别、机器视觉等中有很重要的作用。边缘是边缘检测的重要基础,也是外形检测的基础。边缘广泛存在于物体与背景之间、物体与物体之间,基元与基元之间,因此它也是图像分割所依赖的重要特征。边缘检测一直以来都是图像处理与分析领域的研究热点。对具有代表性的图像边缘提取方法进行讨论,分析这些算
12、子进行边缘检测的优缺点,以及导致他们效果差异的具体原因。为了更清楚地看出效果,针对标准例图,给出这些算法的仿真实验效果,最后对实验结果进行分析,这对于进一步学习和寻找更好的数字图像边缘检测方法具有一定的指导意义。实现边缘检测的方法有很多它们的绝大部分可以划分为两类:基于查找一类和基于零穿越的一类。基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是拉普拉斯过零点或者非线性差分表示的过零点。第一章 概述第一节 数字图像处理的概念及其特点 图像是人类活动中最常用的信息载体,研究表明,人类获取的视
13、觉图像信息在人类接受的信息中的比重达到近80%。数字图像处理是利用计算机(或数字技术)对图像信息进行加工处理,以改善图像的质量。压缩图像的数据或从图像数据中获取更多信息。“数字图像处理”这一术语通常是指由数字计算机进行的二维图像处理,更广义地理解,它是指任意二维数据的数字处理。一幅数字图像是一个用有限比特表示的实数或负数构成的数组。 同传统的模拟图像处理相比,数字图像处理有很多优点。1. 精度高:对于一幅图像而言,不管是对2bit还是8bit图像的处理,对计算机程序来说几乎是一样的。增加图像像素数使处理图像变大,只需改变数组的参数,而处理方法不变。2. 再现性好:图像均用数组活数组集合表示,这
14、样计算机容易处理。因此,在传送和复制图像时,只在计算机内部进行处理,数据不会丢失或遭破坏,这样使数字图像处理不会因图像的存储、传输或复制等一系列变换操作导致图像质量的退化,从而保持再现性。3. 通用性、灵活性高:尽管可视图像成像体系中的设备规模和精度各不相同,但把图像信号直接进行A/D变换或记录成照片,对于计算机来说都能用二维数组表示,即不管什么样的图像都可用同样的方法进行处理。另外,对程序加以改变后可进行各种各样的处理,灵活性极高。第二节 数字图像处理研究的主要内容数字图像处理主要研究的内容有以下几个方面:1)图像变换 由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用
15、各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。目前新研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。 2) 图像编码压缩 图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。 3) 图像增强和复原 图像增强和复原的目的是为了提
16、高图像的质量,如去除噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立降质模型,再采用某种滤波方法,恢复或重建原来的图像。 4) 图像分割 图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研
17、究还在不断深入之中,是目前图像处理中研究的热点之一。5) 图像描述 图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。6) 图像分类(识别) 图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类
18、,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。第三节 课题研究的背景及意义一背景图像的边缘检测有着很长的研究历史,学术思想非常活跃,新理论、新方法不断涌现,一直是国内外图像处理领域研究的热点,目前为止已经提出了许多方法和理论,对该领域相关研究的回顾请见参考文献。这一方面是由于边缘检测本身的重要性,另一方面也反映了边缘检测课题的深度和难度。至今提出的关于边缘检测的方法和理论尚存在不足之处,在某些具体情况下仍然无法很好的检测出目标物体的边缘,难以找到一种普遍适应性的边缘检测方法。因此,根据具体的应用要求设计新的边缘检测方法,或对现有的方法进行改进以得到满意的边
19、缘检测结果,这些依然是研究的主流方向。现有的边缘检测方法大致有以下几类:1.微分法传统的图像边缘检测方法大多归结为图像高频分量的增强过程,微分运算自然就成了边缘检测与提取的主要手段。基于边缘点往往对应于一阶微分幅值大的点,研究者最早提出了一些基于梯度的边缘检测算子,例如Roberts算子、Prewitt算子、Sobel算子、Kirsch算子等。基于梯度的边缘检测算子是现在应用比较广泛的方法,它们运算量小,操作简单。但是由于基于梯度的边缘检测算子通常在图像边缘附近的区域内产生较宽的响应,所以采用上述算子检测的边缘一般需要作细化处理,这就影响了边缘定位的精度。一阶微分的局部最大值对应着二阶微分的过
20、零点,这意味着在图像边缘点处有一阶微分的峰值同样会有二阶微分的零交叉点,因此人们也提出了二阶微分算子进行边缘检测,例如拉普拉斯算子。与基于梯度的边缘检测算子相比,拉普拉斯算子对噪声更加敏感,增强了噪声对图像的影响。实际应用中使用基于梯度和二阶微分的边缘检测算子时,通常需要先对图像进行滤波平滑处理。2.最优算子法最优算子是在经典边缘检测算子的基础上发展起来的,这类方法的目的是根据信噪比求得检测边缘的最优滤波器。高斯拉普拉斯算子,也被称LOG( Laplacian of Gaussian)算子,它先用高斯函数对图像进行平滑,再采用拉普拉斯算子根据二阶导数过零点检测边缘。数学上已经证明。LOG算子是
21、按照二阶导数零交叉点检测阶跃型边缘的最佳算子。另外还有几种方法就不详细介绍了如基于小波的边缘检测、基于形态学的边缘检测、基于分形理论的边缘检测、基于模糊学的边缘检测、基于人工智能的边缘检测等。二意义 边缘像素实质上是指局部图像范围内灰度的急剧变化(奇异点),图像边缘就是二维图像中奇异点的集合。物体形状、物体边界、位置遮挡、阴影轮廓及表面纹理等重要视觉信息在图像中均有边缘产生。图像边缘是图像中最基本的特征,是分析理解图像的基础。边缘检测对于物体识别也是很重要的。所以边缘检测使数字图像分析处理的前提,检测结果的优劣影响着下一步图像压缩、计算机视觉、模式识别的应用,所以对它的研究具有现实意义和理论意
22、义。 1.边缘检测对图像数据压缩的影响在图像科学研究中,大量工作是对图像、图形的处理,包括数字图像的处理、储存、传输等。特别地,多媒体技术、计算机视觉和计算机模式识别已经越来越普遍地应用于人们的生活当中。其技术特点要求信息的交互性、实时性和协同性。从图像处理的现状及数据存储传输理论知道,多媒体应用中的关键技术是图形、图像数据的压缩和编码以减少数据存储量、降低数据传输率,满足各行各业对图像处理的要求。图像信息是可以进行压缩的,因为原始数据存在着大量的冗余信息,同时人的视觉具有”掩盖效应”,所以在图像传输时可以对某些信息进行一定程度上的丢失,以达到较大的压缩比。对图像中物体的边缘检测能够提取物体的
23、关键特征或轮廓,可以用较少的比特数表示图像,达到压缩图像数据的目的。 2.边缘检测对模式识别的影响人工智能领域中,计算机视觉十分关注开发分析图像内容的算法,其中统计模式识别时应用最为广泛的方法,用数字图像处理技术可以很好地实现模式识别。给定一幅含有多个物体的数字图像,模式识别过程主要有三个阶段组成:(1)图像分割或图像分离。检测出各个物体,并与其它景物分离。(2)特征抽取。对物体进行度量并形成一组N维特征。(3)分类。输出一种决策,确定物体应归属的类别。只有精确的图像边缘检测才能真正实现机器人视觉及图像测量、卫星遥感技术、精确制导等技术。在数字识别系统中,图像边缘提取占据着重要的地位,它位于系
24、统的最底层,为其他模块所依赖。图像边缘提取作为计算机视觉领域最经典的的研究课题长期受到人们的重视。经典的边缘检测算法有Roberts、Sobel、Prewitt、拉普拉斯和LOG边缘检测方法等。近年来仍有许多学者不断提出新的理论和方法,可见参考文献,学术思想活跃,这一方面反映了课题本身的重要性,另一方面也反映了这个课题的深度和难度。第四节 论文总体结构在第二章第一节主要介绍边缘检测的基本概念,第二节阐述边缘的定义及类型分析,而第三节介绍边缘检测的一般步骤。从第三章开始是边缘检测算法综述,我列举几种经典算法如Roberts算子,Prewitt和Sobel算子,Kirsch 算子 ,Laplace
25、算子 ,高斯拉普拉斯算子等。第四章介绍算法的VC+实现和结果分析。 第二章 边缘检测的基本概念第一节 数学基础1.微分算子图像中的边缘检测一般如下完成:执行图像场的空间差分,接着执行一个阈值运算,来确定幅度剧烈改变的点。水平和垂直空间导数可定义为: 式(2-1) 式(2-2)沿与水平轴成角度的一个向量方向z,图像场的方向导数给定为 式(2-3)那么梯度幅值为 式(2-4)在水平和垂直方向的空间二阶导数定义为 式(2-5) 式(2-6)这两个空间导数的和称为拉普拉斯算子: 式(2-7)2. 有限区域的叠加和卷积在泛函分析中,卷积(卷积)、旋积或摺积是通过两个函数f 和g 生成第三个函数的一种数学
26、算子,表徵函数f 与经过翻转和平移与g 的重叠部分的累积。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑动平均”的推广。函数f与g的卷积可以定义为 式(2-8)第二节 边缘定义及类型分析1.定义边缘是指其周围像素灰度有阶跃变化或房顶变化的那些像素的集合。在一幅图像中,边缘有方向和幅度两个特性。一般认为沿边缘走向的灰度变化较为平缓,而垂直于边缘走向的灰度变化剧烈。即灰度梯度指向边缘的垂直方向。 这种不连续常可以利用求导数的方法方便的检测到,一般常用一阶和二阶导数来检测边缘。2.类型分析我们来看图2-1第一排是一些具有边缘的图像示例,第二排是沿图像水平方向的一个剖面图,第三排和
27、第四排分别为剖面的一阶和二阶导数。常见的边缘剖面有3种:第一种是阶梯状(如图(a)和(b)所示);第二种是脉冲状(如图(c)所示)第三种是屋顶状(如图(d)所示)。阶梯状的边缘处于图像中两个具有不同灰度值的相邻区域之间,脉冲状主要对应细条状的灰度值突变区域,而屋顶状的边缘上升延和下降沿都比较缓慢。由于取样的缘故,数字图像边缘总是有些模糊,所以这里是上下垂直边缘部分,可作为一定的坡度表示。 图2-1 边缘剖面图图2-1(a)中,对灰度值剖面的一阶导数在灰度图由暗变明的交界处有一个向上的阶跃,而在其它位置上都为零。这种现象表明可用一阶导数的幅度值来检测这种边缘的存在,幅度峰值一般对应的就是边缘位置
28、。对灰度值剖面的二阶导数在一阶导数的阶跃上升区有一个向上的脉冲,而在一阶导数阶跃下降区有一个向下的脉冲。在这两个阶跃之间有一个过零点,它的位置正对应原始图像中边缘的位置。所以可用二阶导数过零点检测边缘位置,而二阶导数在过零点附近的符号确定边缘像素在图像边缘的暗区或明区。分析图(b)可得到相似的结论。这里图像是由明变暗,所以与图(a)相比,剖面左右对称,一阶导数上下对称,二阶导数左右对称。图(c)中,脉冲状的剖面边缘与图(a)的一阶导数形状相同,所以图(c)的一阶导数形状与图(a)的二阶导数形状相同,而它的两个二阶导数过零点正好分别对应脉冲的上升沿和下降沿。通过检测剖面的两个二阶导数过零点就可以
29、确定脉冲的范围。图(d)中,屋顶状边缘的剖面可看作是将脉冲边缘展开得到的,所以它的一阶导数是将图(c)脉冲剖面的一阶导数的上升沿和下降沿展开得到的,而它的二阶导数是将脉冲剖面二阶导数的上升沿和下降沿拉开得到的。通过检测屋顶状边缘剖面的一阶导数过零点可以确定屋顶位置。第三节 边缘检测的一般步骤一般来说,边缘检测的算法有如下四个步骤:1) 滤波:边缘检测算法主要是基于图像增强的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。2) 增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域强度之有显著变化的点突显出来。边缘增强一般都是通过计
30、算梯度幅值来完成的。3) 检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。4) 定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。在边缘检测算法中,前三个步骤用的十分普遍。这是由于大多数场合下,仅仅需要边缘检测器指出边缘出现在图像某一像素点的附近,而没有必要指出边缘的精确位置或方向。第三章 边缘检测算法综述 第一节 概述图像处理中大多数是针对数字图像的,为了计算方便,常利用小区域模板进行卷积来近似计算梯度。对和各用一个模板,然后把
31、两个模板组合起来构成一个梯度算子。第二节 一阶导数边缘检测有两种方法可以生成一阶导数边缘梯度。一种是在图像两个正交方向上的梯度计算,另一种是使用图像中的一组不同的方向导数。1. Roberts梯度算子它是一种利用局部差分算子寻找边缘的算子,公式如下: 式(3-9)其中f(x,y)是具有整数像素坐标的输入图像,平方根运算使该处理类似于在人类视觉系统中发生的过程。设如下一个33的区域表示一幅图像中相邻区域的灰度值,f(x,y)则在点处求一阶偏微分可用如下的Roberts交叉梯度算子: 式(3-10) 式(3-11)利用如下的一个模板(Roberts算子)可以把微分应用于整个图像, Roberts算
32、子是一个22的模板,如图3-3所示,它的边缘定位准,但是对噪声敏感,由于没有一个中心点,在使用过程中多有不便。 图3-2 原图 图3-3 Roberts算子处理后的图像2. Prewitt和Sobel算子为在检测边缘的同时减少噪声的影响,Prewitt从加大边缘检测算子的模板大小出发,由扩大到33来计算差分算子Prewitt算子的模板为: H(x,y) 式(2-12) 式(2-13)边缘检测梯度= MAX 式(2-14)式中G(x,y)=f(x,y)* H(x,y) 它是图像与梯度脉冲响应阵列H(x,y)相卷积的第m个等间隔方向上的梯度。边缘的方向角由最大梯度的方向决定。在33的图像区域内,第
33、一行与第三行的差近似于对x的偏微分,第一列与第三列的差近似于对y的偏微分。Prewitt算子是对像素进行平均,相当于对图像的低通滤波,所以对噪声有抑制作用,也正因为如此,Prewitt算子对边缘的定位不如Roberts算子准确。对Prewitt算子中的两个等式稍做变化,令中间因子的权重为2: 式(3-15) 式(3-16)Sobel算子的模板为: Sobel算子认为领域的像素对当前像素的影响是不同的,所以距离不同的像素有不同的权值,且距离越小产生的影响越大。 图3-4 Prewitt算子处理后的图像 图3-5 Sobel算子处理后的图像如图3-4和3-5两幅图所示,比较:在数字梯度的计算中,P
34、rewitt和Sobel算子都是最常用的。Prewitt的模板应用起来更为方便,而Sobel模板的噪声抑制作用更好一些,在处理微分的时候,噪声抑制往往很重要。注意:a.在所有模板中,因子之和都为0,表示正如微分算子所期望的那样,对灰度值均匀的区域来说响应为0。b.用 Prewitt和Sobel算子计算和时,只对垂直或水平的边缘给出了各向同性的结果。另外,只要对以上的Prewitt和Sobel算子稍做变化,就能使他们在对角线方向反应敏感。以下是用于检测对角线方向不连续性的附加Prewitt和Sobel算子。 用于检测对角线方向的Prewitt算子 用于检测对角线方向的Sobel算子3. 方向算子
35、Kirsch算子方向算子是利用一组模板对图像中的同一像素求卷积,选取其中最大的值作为边缘强度,而将与之相对应的方向作为边缘方。常用的八方向Kirsch(33)模板如图所示。各方向间的夹角为45。 图3-6 Kirsch模板Kirsch算子的梯度幅度值用如下公式:G(x,y)=MAX 式(3-17)图像中的每个点都用8个掩模进行卷积,每个掩模对某个特定边缘方向作出最大响应。所有8个方向中的最大值作为边缘幅度图像的输出。最大响应掩模的序号构成了对边缘方向的编码。它可以检测各个方向上的边缘,减少细节的丢失。 图3-7 Kirsch算子处理后的图像 第三节 二阶导数边缘检测1.Laplace算子对于阶
36、跃状边缘,其二阶导数在边缘点出现零交叉,并且边缘点两旁像素的二阶导数异号。拉普拉斯算子是一种二阶导数算子对一个连续的二维函数f(x, y)的一个二阶微分,定义如下: 式(3-18)因为任意阶的微分都是线性的算子,所以Laplace算子也是线性的。在数字图像的处理中,以上Laplace算子的离散形式为:在x方向上, 式(3-19)在y方向上, 式(3-20)两式合并为: 式(3-21)在33的区域中, 式(3-21)对应的模板为:包含对角线领域的Laplace算子的数字近似是: 式(3-22)对应的扩展模板为:(1) 作为二阶微分,Laplace算子对于噪声过于敏感了。(2) Laplace算子
37、会产生双边界,这会使分割更为复杂。(3) Laplace算子无法确定边界的方向。由于以上原因Laplace算子一般不直接用在边界检测中在图像分割中Laplace算子主要用于:(1) 利用它过零点的特性,来进行边界定位。这时,须先对图像进行平滑处理。(2) 在确定边界附近的点位于亮区还是暗区时,也可利用Laplace算子。2. 高斯拉普拉斯算子由于噪声点对边缘检测有一定影响,所以高斯拉普拉斯算子是效果较好的的边缘检测器,它把高斯平滑滤波器和拉普拉斯锐化器结合了起来,先平滑掉噪声,再进行边缘检测,效果更好。故称为LOG算子。图像的平滑会引起边缘的模糊。高斯平滑运算导致图像中边缘和其他尖锐不连续部分
38、的模糊,其中模糊量取决于 值。 值越大,噪音滤波效果越好,但同时也丢失了重要的边缘信息,影响了边缘检测器的性能。如果取小值,又有可能平滑不完全而留有大多的噪音。大 值的滤波器在平滑相互邻近的两个边缘时,可能会将它们连在一起,这样只能检测出一个边缘。因此,在不知道物体尺度和位置的情况下,很难准确确定滤波器的值。一般来说,使用大值的滤波器产生鲁棒边缘,小值的滤波器产生精确定位的边缘,两者相结合,能够检测出图像的最佳边缘。(1) 选取高斯函数对图像f(x,y)进行平滑滤波二维高斯函数为: G(x,y)= 式(3-23) g(x,y)=f(x,y) * G(x,y) 式(3-24)在空间域将搞死函数G
39、(x,y)与图像f(x,y)进行卷积,可得到一个平滑图像g(x,y),其中G(x,y)是一个圆对称函数,其平滑作用可通过高斯函数的分布参数进行控制(2) 对平滑后的图像g(x,y)进行拉普拉斯运算可等效为G(x,y)的拉普拉斯运算与f(x,y)卷积,即:h(x,y)=g(x,y)=f(x,y)* G(x,y)= f(x,y) * G(x,y) 式(3-25)式中:G(x,y)称为LOG滤波器,LOG又叫墨西哥草帽滤波器。其值为:G(x,y)= + = - 1() 式(3-26)这样,采用LOG算子就有两种方法求图像边缘: 先求图像与高斯函数的卷积,再求卷积的拉普拉斯变换,然后再进行过零判断。
40、求高斯函数的拉普拉斯变换,再求与图像的卷积,然后再进行过零判断。这两种方法在数学上是等价的.常用的高斯拉普拉斯算子是的55卷积模板: 如图3-8所示,图像的平滑处理减少了噪声的影响并且它的主要作用还是抵消由Laplacian算子的二阶导数引起的逐渐增加的噪声影响。 图3-8 高斯拉普拉斯算子处理后的图像第四章 算法VC+实现和结果第一节 Visual C+ MFC 编程的简单说明 本次边缘检测是用Visual C+ 来实现, Visual C+ 不仅仅是一个编译器。它是一个全面的应用程序开发环境,使用它可以充分利用具有面向对象特性的 C+ 来开发出专业级的 Windows 应用程序。本类库 (
41、MFC) 的层次结构,该结构包容了 Windows API 中的用户界面部分,能够很容易地以面向对象的方式建立 Windows 应用程序。这种层次结构适用于所有版本的 Windows 并彼此兼容。用 MFC 所建立的代码是完全可移植的。我设计了一个用户界面,如图4-9所示 图4-9 边缘处理用户界面 一般使用的框架是VC+提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。Windows 用户界面有一些标准的控制,如按钮、菜单、滚动条和列表等,我需要把这些控件安排到屏幕上。我先照这书上说的在纸上做一下用户界面的草图,直到对各元素
42、感到满意为止。这对于一些比较小的项目原型阶段是可以的。下一步,是用C+语言实现代码。同时还要编写用来响应用户操作这些控制的代码。例如,如果用户单击一个按钮时,就应该有代码来响应。这就是事件驱动代码,它构成了所有应用程序。一旦应用程序正确的响应了所有允许的控制,它的任务也就完成了。如图4-10所示 图4-10 单击空间代码响应第二节 算法的结果比较常用的一阶导数微分边缘检测算子比较 表4-1 经典算子比较算子f(x,y)f(x,y)特点Roberts.边缘定位准.对噪声敏感Prewitt.平均、微分.对噪声有抑制作用Sobel.加权平均.变宽2像素 图4-11 (a)原图 (b)Roberts边缘检测 (c)Prewitt边缘检测 (d)Sobel 边缘检测 (e)Kirsch 边缘检测 (f)LOG 边缘检测 图4-11中(b)是经Roberts算子处理后的图像:边缘定位准,但是对噪声敏感。适用于边缘明显且噪声较少的图像分割。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。经分析,由于Robert算子通常会在图像边缘附近的区域内产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高。(c)图是经Prewitt算子处理后的图像:对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像素平均相当于