版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业论文(设计) 论 文 题 目 基于边缘检测的图像分割算法 研究及其应用 姓名(学号) 系 别 专 业 导 师 姓 名 基于边缘检测的图像分割算法研究及其应用基于边缘检测的图像分割算法研究及其应用 作 者 指导教师 摘要摘要:图像分割是图像处理中的一个经典难题,也是图像处理和计算机视觉领域中的基本技术。目前, 广大研究者在图像分割领域里已提出了上百种分割方法,每种分割方法只局限特定的分割对象,至今没 有一种通用的方法。边缘检测是图象处理中重要的一个环节。文章具体对Prewitt 算子、Sobel算子、高斯 -拉普拉斯(LOG)算子、Wallis算子、 过零点检测(Marr-Hildret
2、h算子) 、 Canny边缘检测方法、 SUSAN(Smallest Univalue Segment Assimilating Nucleus)边缘检测等进行算法分析,利用上述算法,找 出其中较好的一种检测方法用于图像分割. 关键词关键词:图像分割;边缘检测;图象处理;检测算子 Image Segmentation Based on Edge Detection Algorithm and its Application Abstract:Image segmentation is not only a cIassical puzzle for researchcrs but also th
3、e imponant part of image analysisand the computer vision fieldNowadays,hundreds of methods have been put forward to the image sqgmcntation,and each of the methods is used for special segnlented objectsThere is not a generaI method for irnagc segment as yetThis Article specific to analysis of Prewitt
4、 operator, Sobel operator, Gauss - Laplace (LOG) operator, Wallis operator, zero crossing detection (Marr-Hildreth operator), Canny edge detection method, SUSAN (Smallest Univalue Segment Assimilating Nucleus) algorithm for edge detection, etc. Using the above method, find out a better method for de
5、tecting image segmentation. Key words: Image segmentation; edge detection;image processing; detection operator 目 录 摘 要.II ABSTRACT .II 1 绪 论.1 1.1 基于边缘检测的图像分割算法的背景和意义.1 1.2 基于边缘检测的图像分割算法的主要内容.1 1.3 本论文的结构安排.2 2 图像分割以及边缘检测算法的分析.3 2.1 图像分割.3 2.1.1 概述.3 2.2 边缘检测.4 2.2.1 图像边缘.5 2.2.2 几种边缘检测算子.7 3 基于边缘检测
6、的图像分割算法的应用.17 3.1 CANNY 算子的应用.17 结果比较.18 结 论.18 后摘要.19 致 谢.19 参考文献.20 附 件.21 1 1 绪绪 论论 1.1 基于边缘检测的图像分割算法的背景和意义 图像分割时一种重要的图像分析技术。在对图像的研究和应用中,人们往往仅对图像 中的某些部分感兴趣,这些部分称为目标或者前景(其他部分称为背景),他们一般对应图像 中特定的、具有独特性质的区域。这里的独特性可以是像素的灰度值、物体轮廓曲线、颜色、 纹理等。为了识别和分析图像中的目标,需要将它们从图像中分离提取出来,在此基础上才 有可能进一步对目标进行测量和对图像进行利用。因此图像
7、分割就是指把图像分成各具特性 的区域并提出感兴趣目标的技术和过程。图像分割的方法已有上千种,每年还有许多新方法 出现,虽因尚无通用的分割理论,目前提出的分割算法大都是针对具体问题的,但是对于图 像分割的一般性规律则基本上已经达成了共识。而基于边缘检测的图像分割是模仿人类视觉 的过程而进行图像处理的。对于人类视觉系统认识目标的过程分为两步:首先,把图象边缘 与背景分离出来;然后,才能知觉到图象的细节,辨认出图象的轮廓。因此在检测物体边缘 时,先对其轮廓点进行粗略检测,然后通过链接规则把原来检测到的轮廓点连接起来,同时 也检测和连接遗漏的边界点及去除虚假的边界点。图象的边缘是图象的重要特征,是计算
8、机 视觉、模式识别等的基础,因此边缘检测是图象处理中一个重要的环节。然而,边缘检测又 是图象处理中的一个难题,由于实际景物图象的边缘往往是各种类型的边缘及它们模糊化后 结果的组合,且实际图象信号存在着噪声。噪声和边缘都属于高频信号,很难用频带做取舍。 1.2 本论文的主要内容 一、对 Prewitt 算子、Sobel 算子、高斯-拉普拉斯(LOG)算子、Wallis 算子、 Canny 边缘检 测方法、 SUSAN(Smallest Univalue Segment Assimilating Nucleus)边缘检测等进行算法分 析。 二、利用上述算法,找出其中较好的一种检测方法用于图像分割。
9、 三、用到一类图像中并完成实验。 1.3 本论文的结构安排 选择一种算法 应用于图像分 割 综综 合合 比比 较较 用 jdk 开发用具, 编写代码,将 上述代码应用 于一类图像 完成实验 图像分割的基本 概念 边缘检 测算法 Prewitt 算子 Sobel 算 子 高斯-拉 普拉斯 (LOG)算 子 Wallis 算子 Canny 边缘检 测方法 SUSAN 边缘检 测 分析分析 分析分析 2 图像分割以及边缘检测算法的分析 2.12.1 图像分割 2.1.12.1.1 概述概述 在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣。这些部 分常称为目标或对象,它们一般对应图像中特定
10、的、具有独特性质的区域。图像处理的重要 任务就是对图像中的对象进行分析和理解。前面介绍的图像处理着重强调在图像之间进行变 换以改善图像的视觉效果;图像分析则主要是对图像中感兴趣的目标进行检测和测量,以获 得它们的客观信息从而建立对图像的描述;图像理解的重点是在图像分析的基础上,进一步 研究图像中各目标的性质和它们之间的相互联系,并得出对原始客观场景的解释,从而指导 和规划行动。图像分析的大致步骤为: 把图像分割成不同的区域或把不同的对象分开; 找出分开的各区域的特征; 识别图像中要找的对象或对图像分类; 对不同区域进行描述或寻找出不同区域的相互联系,进而找出相似结构或 将相关区域连成一个有意义
11、的结构。 这里的区域指相互连通的、有一致属性的像元的集合.它是一个方便的、很 好的图像中层描述符号,是对图像模型化和进行高层理解的基础。为了辨识和分析目标,需 要将它们分离提取出来,在此基础上才有可能对目标进一步利用。图像分割就是指把图像分 成互不重叠的区域并提取出感兴趣目标的技术和过程。图像分割是由图像处理进到图像分析 的关键步骤。一方面,它是目标表达的基础,对特征测量有重要的影响。另一方面,因为图 像分割及其基于分割的目标表达、特征提取和参数测量等将原始图像转化为更抽象更紧凑的 形式,使得更高层的图像分析和理解成为可能。 多年来人们对图像分割提出了不同的解释和表述,这里借助集合概念,给出
12、图像分割比较正式的定义。 令集合R代表整个图像区域,对R的分割可看作将R分成N个满足以下五个条件 的非空子集(子区域)R1,R2,RN: ; 对所有的i和j,ij,有RiRj =; 对i = 1,2,N,有P(Ri) = TRUE; 对ij,有P(RiRj) = FALSE; 对i =1,2,N,Ri是连通的区域。 其中P(Ri)是对所有在集合Ri中元素的逻辑谓词,代表空集。 条件指出在对一幅图像的分割结果中全部子区域的总和(并集)应能包括图 像中所有像素(就是原图像);条件指出在分割结果中各个子区域是互不重叠的,或者说 在分割结果中一个像素不能同时属于两个区域;条件指出属于同一个区域中的像素
13、应该具 有某些相同特性;条件指出在分割结果中属于不同区域的像素应该具有一些不同的特性; 条件要求分割结果中同一个子区域内的任两个像素在该子区域内互相连通,或者说分割得 到的区域是一个连通组元。 为有效地分割各种各样的图像,人们已经提出了很多分割方法。 按分割途径分为: 1)基于边缘提取的分割法 先提取区域边界,再确定边界限定的区域。 2)区域分割 从图像出发,按“有意义”的属性一致的原则,确定每个像元 的归属区域,形成一个区域图。 3)区域增长 从像元出发,按“有意义”的属性一致的原则,将属性接近的 连通像元聚集成区域。 4)分裂合并法 综合利用上述2)、3)两种方法,既存在图像的划分,又 有
14、像元的合并。 至今,图像区域分割已有了很长的研究历史,针对各种具体图像建立了许多 算法,但尚无统一的理论。为了寻求更好的分割方法,今后主要的研究方向是1)提取有效 的属性;2)寻求更好的分割途径和分割质量评价体系;3)分割自动化。 本文主要对边缘检测进行分析。 2.22.2 边缘检测边缘检测 在一副视觉图像中,往往有很多条图像边缘,可以说图像边缘是图像的主要特征信息。 图像中的边缘对分析视觉图像特别重要,是图像分割、纹理特征提取和形状特征提取等图像 分析的重要基础。 2.2.12.2.1 图像边缘图像边缘 边缘是指图像中像元灰度有阶跃变化或屋顶状变化的那些像元的集合。它存 在于目标与背景、目标
15、与目标、区域与区域、基元与基元之间。它对图像识别和分析十分有 用,边缘能勾划出目标物体轮廓,使观察者一目了然,包含了丰实的信息(如方向、阶跃性 质 、形状等) ,是图像识别中抽取的重要属性。 边缘粗略分为阶跃状和屋顶状两种。阶跃状边缘位于两边的像素灰度值有明 显不同的地方;屋顶状边缘位于灰度值从增加到减少的转折处。 下图(a)中 OIJ 图像平面上 PP是阶跃状边缘,PP上每个像素均是阶跃边缘 点图(b)中 QQ是屋顶状边缘,位于图像平面 OIJ 上边缘 QQ的每个像素称为屋顶状边缘点。 图(1) a阶跃状边缘 b 屋顶状边缘 考察过 P,Q与 PP和 QQ分别正交的截面,阶跃边缘和屋顶状边缘
16、分别为一维阶跃函数 和正态状函数,如上图(c)、(d)所示。P和 Q是相应的边缘点。设阶跃状边缘点 P左右灰度 变化曲线为 y = fE(x),屋顶状边缘点 Q左右灰度变化曲线为 y = fR(x)。fE(x)和 fR(x)的一阶、 二阶导数分别如上图的(e),(f)和(g),(h)所示。对于阶跃状边缘点 P,灰度变化曲线 y = fE(x) 的一阶导函数在 P点达到极值,二阶导函数在 P近旁呈零交叉。对于屋顶状边缘点 Q,灰度 变化曲线 y = fR(x)的一阶导函数在 Q点近旁呈零交叉,二阶导函数在 Q点达到极值。利用 边缘灰度变化的一阶或二阶导数特点,可以将边缘点检测出来。 边缘有方向和
17、幅度两个特性,通常沿边缘走向的幅度变化比较平缓,而垂直于边缘走向的幅 度变换比较剧烈。对于阶跃边缘,一阶微分边缘检测算子正是利用了边缘的方向和幅度这两 个特性。函数的变化程度可用一阶微分导数表示。而对于二维图像,其局部特性的显著变化 可以用梯度来检测。梯度是函数变化的一种度量,定义为 G(x,y)= (1) 梯度是一矢量,函数的梯度给出了方向导数最大的方向 (2) 而这个方向的导数等于梯度的模 (3) 因此,可以把梯度的模作为边缘检测的算子。梯度的模给出了边缘强度,梯度的指向给出了 边缘的方向。 对于数字图像,式(2.1)的导数可用差分来近似。最简单的梯度近似表达式为 (4) 这里i,j表示像
18、素点的列坐标和行坐标。在实际应用时,其可用下面的简单卷积模板 Gx 和 Gy 完成: Gx= -11 f x x f y x f f ,arctan y x f x y f 22 (, ) xy G X Yff 1, , , ,1 x y ff ijf i j ff i jf i j Gy= 在以梯度表示二维图像局部特性时,应计算同一图像位置(x,y)的偏导数,然而采用式(2.4)计 算的梯度近似值 和 并不属于同一图像位置。实际上 是内插点i+1/2,j处的梯度近似值,而 确是内插点i,j+1/2处的梯度近似值。正因如此,人们常常使用 2*2 一阶差分模板来求 x 和 y 的偏导数 Gx=
19、Gy= 这时,x 和 y 方向梯度的图像位置是相同的,这一点位于内插点i+1/2,j+1/2处,即在 2*2 领 域的所有四个像素点之间 2.2.22.2.2 几种边缘检测算子几种边缘检测算子 (1) Prewitt 边缘算子边缘算子 Prewitt 边缘算子是一种计算梯度的近似方法。它是在 3*3 领域内计算梯度值,这样可以 避免在像素之间内插点上计算梯度。考虑下面所示的点i,j周围点的排列: 1 -1 -11 -11 -11 -11 点i,j的偏导数用以下式计算: (5) 其中,c=1。和其他的梯度算子一样,和可以用卷积模板 Gx 和 Gy 来实现。 x f y f Gx= Gy= 图像中
20、的每个点都用这两个模板来做卷积。 (2) Sobel 边缘算子边缘算子 Sobel 边缘算子和 Prewitt 边缘算子的偏导数形式完全一样,只是 c=2。所以,与使用 Prewitt 边缘算子一样,图像中的每个点都用这两个模板来进行卷积,与 Prewitt 边缘算子不 同,Sobel 边缘算子把重点放在接近于模板中心的像素点: a0a1a2 a7i,ja3 a6a5a4 -101 -101 -101 z11 000 -1-1-1 -101 234076 012654 ()() ()() x y facaaacaa facaaacaa Gx= Gy= Gx 对于垂直边缘响应最大,而 Gy 对于
21、水平边缘响应最大,从卷积模板可以看出,这一算 子把重点放在接近与模板中心的像素点。 (3) Laplace 算子算子 对于阶跃状边缘,其二阶导数在边缘点出现零交叉,即边缘点两旁二阶导数取异号。据 此,对数字图像的每个像素计算关于 x 轴和 y 轴的二阶偏导数之和 2 ( , )f x y (6) 2 ( , )(1, )(1, )( ,1)( ,1)4 ( , )f x yf xyf xyf x yf x yf x y 上式就是著名的 Laplace 算子。该算子对应的模板如下图所示,它是一个与方向无关的各向 同性(旋转轴对称)边缘检测算子。若只关心边缘点的位置而不顾其周围的实际灰度差时, 一
22、般选择该算子。 其特点是:各向同性、线性和位移不变的;对细线和孤立点检测效果好。但 边缘方向信息丢失,常产生双像素的边缘,对噪声有双倍加强作用。 由于梯度算子和 Laplace 算子都对噪声敏感,因此一般在用它们检测边缘前要先对图像进行 平滑。 (4) 高斯高斯-拉普拉斯拉普拉斯(LOG)算子算子 LOG 算子是在拉普拉斯算子的基础上实现的,它得意于对人的视觉机理的援救,有一滴昂 -202 -101 121 000 -1-2-1 的生物学意义。由于拉普拉斯算子对噪声比较敏感,为了减少噪声影响,可先对待处理的图 像进行平滑,然后再用拉普拉斯算子检测边缘。 在从景物到图像的形成过程中,对每一像素点
23、的灰度来说,该像素点所对应的真实景物的周 围点对该像素点灰度的影响是随径向距离成正态分布,即越接近与像素点所对应的真实景物 点,对该像素点的灰度贡献越大。所以平滑函数应反映不同远近的周围点对给定像素具有的 不同作用。实际上高斯函数满足上述对平滑的要求。因此,LoG 算子中采用了高斯函数。 设 f(x,y) 为源图像,h(x,y) 为高斯平滑函数,平滑滤波后的图像可以表示原图像与平滑函数 的卷积 (7) ( , )( , )( , )g x yf x yh x y 然后对图像 采用拉普拉斯算子进行检测边缘,可得 (8) 22 ( , ) ( , )( , )g x yf x yh x y 由卷积
24、的性质,有 222 ( , )( , )( , )( , )( , )g x yf x yh x yf x yh x y 其中 (9) 这样,利用二阶导数算子过零点的性质,可确定图像中阶跃装边缘的位置。 式(2.5)中的称为拉普拉斯高斯算子LoG 算子。运用 LoG 算子检测边缘,实际上 2 ( , )h x y 就是寻找满足 2 ( , ) ( , )0f x yh x y 的点。 LoG 算子是一个轴对称函数,各向同性。图 2.1 示出来了 LoG 算子及其频谱图的一个轴截 面的翻转图,其中 。也称为“墨西哥草帽” 。由图 2.1(a)可见,这个 22 1/2 ()rxy 2 ( , )h
25、 x y 函数在出有过零点,在时为正,在时为负。另外可以证明这个算在定义 r |r|r 域内的平均值为零,因此,将它与图像卷积并不会改变图像的整体动态范围。但由于它相当 光滑,因此将它与图像卷积会模糊图像,并且模糊程度真比于。正因为的平滑特 2 ( , )h x y 性能减少噪声的影响,所以当边缘模糊或噪声较大时,利用检测过零点能提供较可 2 ( , )h x y 22 2 22 2 2 42 1 ( , )(2) 2 xy xy h x ye 靠的边缘位置。在该算子中,的选择很重重要,选小时位置精度高但边缘细节变化多。 应注意 LoG 算子用于噪声较大的区域会产生高密度的过零点。 图 2 L
26、oG 算子频谱图 图 2.2 是一个 5*5LoG 模板,数学上已证明,LoG 算子是按零交叉检测阶跃边缘的最佳算子, 但在实际图像中,高斯滤波的零交叉点不一定全部是边缘点,还需要进一步对其真伪进行检 验。 综上所述,LoG 边缘算子概括如下: (1) 平滑滤波器是高斯滤波器。 (2) 二维拉普拉斯函数。 (3) 边缘检测判据是二阶导数零交叉点并对应一阶导数的较大的峰值。 (4) 使用线性内插方法在子像素分辨率水平上估计边缘的位置。 图(3) 5*5LoG 模板 (5) Wallis 算子算子 00-100 0-1-2-10 -1-216-2-1 0-1-2-10 00-100 该算子是 la
27、place 算子的改进,也是一种采用了自适应技术的算子。 设f(i,j)为原始图像,它的局部均值和局部标准偏差分别为_f(i,j)和 (i,j),则增强后 的图像在点(i,j)处灰度为: g(i,j) = a * md + (1-a)*_f(i,j) + f(i,j) - _f(i,j)* A*d/A*(i,j) + _d(10) 其中,m_d 和 _d 表示设计的平均值和标准偏差,A 是增益系数,a 是控制增强图像中边 缘和背景组成的比例常数。 (6) Canny 边缘检测算子边缘检测算子 虽然边缘检测的基本思想比较简单,但在实际实现时却碰到了很大困难,其根本原因是 实际信号都有噪声的,而且
28、一般表现是高频信号。在这种情况下,如果直接采用上述边缘算 子,检测出来的都是噪声引起的假的边缘点。解决这一问题的办法是先对信号进行平滑滤波, 以滤去噪声。对平滑后的图像,采用上述边缘算子就可以比较有效地检测出边缘点,这一过 程为: 设原始图像输入为 f(x,y),h(x,y) 为高斯平滑函数,平滑滤波后的图像可以表示原图像 与平滑函数的卷积 (11) ( , )( , )( , )g x yf x yh x y 然后在计算平滑后图像的梯度 (12) 由卷积运算特性,有 (13) ( , )( , )( , )( , )( , )g x yf x yh x yf x yh x y 所以,Cann
29、y 边缘检测的过程可以直接采用原始图像与平滑滤波脉冲响应一阶微分的卷积运 算来实现 常用的平滑滤波为高斯函数,可以将作为一个算子,称为一阶微分高斯算子, ( , )h x y 因此,Canny 边缘算子是高斯函数的一阶导数。下图 5*5Canny 算子模板 x y ( , ) g gx g x y g g y Gx= Gy= 图像经过高斯平滑后边缘变得模糊,因此,由计算梯度得到的边缘就具有一定的宽度。具有 这种宽边缘变细的方法,叫作非极大点的抑制。 这种方法是在垂直于边缘的方向上互相比较邻接像素的梯度幅值,并出去具有比领域处 小的梯度幅值。根据这一操作,梯度幅值的非极大点背出去,边缘也就变细了
30、。 当然,非极大点抑制图像仍会包含许多有噪声和细纹引起的假边缘,假边缘可以通过双阈值 T1 和 T2,且 T22T1,得到两个双阈值边缘图像 G1i,j和 G2i,j。由于图像 G2i,j是双高 阈值得到的,因此它含有较少的假边缘,但可能在轮廓上有间断。双阈值算法在 G2i,j中把 边缘连接成轮廓,当到达轮廓的端点时,该算法就在 G1i,j的 8 邻点位置寻找可以接到轮廓 上的边缘。这样,算法将不断地在 G1i,j中收集边缘,直到将 G2i,j中所有的间隙连接起来 为止。 所以,归纳上述过程,Canny 边缘算子可概括如下: 用高斯滤波平滑图像。 用一阶偏导的有限差分来计算梯度的幅值和方向。
31、对梯度幅值进行非极大值抑制。 用双阈值算法检测和连接边缘。 0.03660.08210-0.0821-0.0366 0.16420.36790-0.3679-0.1642 0.27070.60650-0.6065-0.2707 0.16420.36790-0.3679-0.1642 0.03660.08210-0.0821-0.0366 0.03660.16420.27070.16420.0366 0.08210.36790.6065-0.36790.0821 00000 -0.0821-0.3679-0.6065-0.3679-0.0821 -0.0366-0.1642-0.2707-0.1
32、642-0.0366 (7) SUSAN(Smallest UnivalueSegment Assimilating Nucleus)算子算子 经典的边缘检测方法如:Roberts,Sobel,Prewitt, ,Laplace 等方法,基本都是对原始图像中象 素的小邻域构造边缘检测算子,进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的 过零点,最后选取适当的阀值提取边界。由于这些算法涉及梯度的运算,因此均存在对噪声敏 感、计算量大等缺点。在实践中,发现 SUSAN 算法只基于对周边象素的灰度比较,完全不涉 及梯度的运算,因此其抗噪声能力很强,运算量也比较小。并将 SUSAN 算法用于多
33、类图像的 边缘检测中,实验证明该算法非常适合含噪图像的边缘检测。 图(4) SUSAN 特征检测原理 SUSAN 特征检测原理:如图上图所示,用一个圆形模板在图像上移动,若模板内象素的灰度 与模板中心象素(称为:核 Nucleus) 灰度的差值小于一定阀值,则认为该点与核具有相同(或相 近) 的灰度,由满足这样条件的象素组成的区域称为 USAN(Univalue Segment Assimilating Nucleus) 。当圆形模板完全处在图像或背景中时,USAN 区域面积最大(如图中的 a 和 b) ;当 模板移向图像边缘时,USAN 区域逐渐变小(如图 1 中 c) ;当模板中心处于边缘
34、时,USAN 区域 很小(如图 1 中的 d) ; 当模板中心处于角点时,USAN 区域最小(如图中的 e) 。可以看出,在 边缘处象素的 USAN 值都小于或等于其最大值的一半。因此,计算图像中每一个象素的 USAN 值,通过设定一个 USAN 阀值,查找小于阀值的象素点,即可确定为边缘点。对整幅图 像中的所有象素,用圆形模板进行扫描,比较模板内每一象素与中心象素的灰度值,通过与给定 的阀值比较,来判别该象素是否属于 USAN 区域,如下式: c( r , r0 )= (15) 式中 c( r , r0 )为模板内属于 USAN 区域的象素的判别函数; I(r0)是模板中心象素(核) 的灰
35、度值; I(r)为模板内其他任意象素的灰度值;t 是灰度差门限。图像中每一点的 USAN 区域大小 可用下式表示: 1 if | I ( r) - I ( r0 ) | t (16) (2)式中 D(r0)为以 r0 为中心的圆形模板区域。得到每个象素的 USAN 值 n(r0)以后,再与预先 设定得门限 g 进行比较,当 n(r0)T时,可认为该点是边缘点,然后再打印边缘点,可得到图像的边缘图像(程序代 码见附录)。以下是Canny检测边缘的效果图 原始图像效果图 图(5) Canny 算法实现对比 0.03660.08210-0.0821-0.0366 0.16420.36790-0.36
36、79-0.1642 0.27070.60650-0.6065-0.2707 0.16420.36790-0.3679-0.1642 0.03660.08210-0.0821-0.0366 0.03660.16420.27070.16420.0366 0.08210.36790.6065-0.36790.0821 00000 -0.0821-0.3679-0.6065-0.3679-0.0821 -0.0366-0.1642-0.2707-0.1642-0.0366 结果比较:结果比较: Prewitt算子和Sobel算子都是一阶的微分算子,而前者是平均滤波,后者是加权平均滤 波且检测的图象边缘
37、可能大于2个像素。这两者对灰度渐变低噪声的图象有较好的检测效果, 但是对于混合多复杂噪声的图象,处理效果就不理想了。LOG滤波器方法通过检测二阶导数 过零点来判断边缘点。LOG滤波器中的正比于低通滤波器的宽度,越大,平滑作用越显 著,去除噪声越好,但图象的细节也损失越大,边缘精度也就越低。所以在边缘定位精度和 消除噪声级间存在着矛盾,应该根据具体问题对噪声水平和边缘点定位精度要求适当选取。 而且LOG方法没有解决如何组织不同尺度滤波器输出的边缘图为单一的、正确的边缘图的具 体方法。Canny方法则以一阶导数为基础来判断边缘点。它是一阶传统微分中检测阶跃型边 缘效果最好的算子之一。它比Sobel
38、算子和Prewitt算子极小值算法的去噪能力都要强,但它 也容易平滑掉一些边缘信息。而对于SUSAN 边缘检测算法,则是直接利用图像灰度相似性 的比较,而不需计算梯度,具有算法简单、定位准确、抗噪声能力强等特点。因此,非常适于含 噪图像或低对比度灰度图像的边缘检测。如果进一步减小门限g 的数值,SUSAN算法还可以 用于角点的检测。 结结 论:论: 讨论和比较了几种常用的边缘检测算子。Sobel边缘算子和Prewitt边缘算子的偏导数形式 完全一样只是Sobel算子把重点放在接近于模板中心的像素点。拉普拉斯算子的特点是:各 向同性、线性和位移不变的;对细线和孤立点检测效果好。但边缘方向信息丢失
39、,常产生双 像素的边缘,对噪声有双倍加强作用。LOG算子是在拉普拉斯算子的基础上实现的具有一定 的抗噪声能力,Canny算子则以一阶导数为基础来判断边缘点。它是一阶传统微分中检测阶 跃型边缘效果最好的算子之一,LOG滤波器和Canny算子能够检测出图象较细的边缘部分。 SUSAN算子与其他算子比较具有边缘检测效果好、抗噪声能力好、算法使用灵活、运算量 小、可以检测边缘的方向信息,不同的系统,针对不同的环境条件和要求,选择合适的算子 来对图象进行边缘检测。 致谢:致谢: 本课题在整个完成过程中得到孔敏老师的悉心指导。*老师平日里工作繁忙,但在我们 做毕业设计时的每个阶段,他都悉心指导我们。正是由
40、于老师的细心指导和不懈支持,我的 毕业设计才能顺利完成。孔老师的治学态度和务实的工作作风深深的感染了我。再次毕业之 际,谨向孔老师表示诚挚的感谢和深深的问候。 另外,我要感谢我系的各位领导为我们提供了良好的学习和生活条件。感谢所有关心和 帮助过我的人,我将在以后的学习和工作中更加努力。相信自己,明天会更加美好! 参考文献参考文献: 1 高月红.灰度图像分割算法的研究.科技信息.2009, (27) 2罗希平,田捷,诸葛婴,王靖,戴汝为.图像分割方法述.PR CanedyPicFrame 类:类: import javax.swing.*; import java.awt.event.*; cl
41、ass CannyPicFrame extends JFrame CannyPicPanel wpp=new CannyPicPanel(); CannyPicFrame() add(wpp); setTitle(基于边缘检测的图像分割-Canny 算子实现); setBounds(10,10,1024,700); setVisible(true); addWindowListener(new Handlewin(); /CannyPicFrame class Handlewin extends WindowAdapter public void windowClosing(WindowEve
42、nt e) System.exit(0); CannyPicPanel 类:类: import javax.swing.*; import java.awt.*; import java.applet.*; import java.awt.image.*; import java.io.*; import java.awt.event.*; class CannyPicPanel extends JPanel int w,h; String pic_url=System.getProperty(user.dir)+13.jpg; mycanvas canvas=new mycanvas(pic
43、_url);/D:图片转换成 word13.jpg JScrollPane jsp=new JScrollPane(canvas); CannyPicPanel() setLayout(new BorderLayout(); add(jsp);System.out.println(pic_url); mycanvas 类:类: class mycanvas extends Canvas PixelContrl pc; Image imagtest; mycanvas(String url) pc=new PixelContrl(new MyImage(url); imagtest=create
44、Image(new MemoryImageSource(pc.imageW,pc.imageH,pc.Canny_pix, 0,pc.imageW); setSize(pc.imageW,pc.imageH); /setSize(500,500); /重画函数 public void paint(Graphics g) g.drawImage(imagtest,0,0,this); MyImage 类:类: class MyImage extends Applet Image myimage; int Height; int Width; MediaTracker tracker; MyIma
45、ge(String url) tracker=new MediaTracker(this); myimage=Toolkit.getDefaultToolkit().getImage(url); tracker.addImage(myimage,0); try tracker.waitForID(0); catch (InterruptedException ex) this.Height=myimage.getHeight(this); this.Width=myimage.getWidth(this); PixelContrl 类:类: class PixelContrl MyImage
46、myimage; int imageW; int imageH; int imagepix; int Canny_pix; double Gx=0.0366,0.0821,0,-0.0821,-0.0366, 0.1642,0.3679,0,-0.3679,-0.1642, 0.2707,0.6065,0,-0.6065,-0.2707, 0.1642,0.3679,0,-0.6065,-0.2707, 0.0366,0.0821,0,-0.0821,-0.0366 ; double Gy=0.0366,0.1642,0.2707,0.16421,0.03666, 0.0821,0.3679,
47、0.6065,0.36799,0.0821, 0,0,0,0,0, -0.0821,-0.3679,-0.6065,-0.3679,-0.0821, -0.0366,-0.1642,-0.2707,-0.1642,-0.0366 ; PixelContrl(MyImage myimage) this.myimage=myimage; imageW=myimage.Width; imageH=myimage.Height; imagepix=new intimageW*imageH; Canny_pix=new intimageW*imageH; PixelGrabber pg=new Pixe
48、lGrabber(myimage.myimage,0,0,myimage.Width,myimage.Height,imagepix,0,myimage.Width); try pg.grabPixels(); catch (InterruptedException e) System.out.println(imageW); for(int i=0;iimageW;i+) for (int j=0;jimageH;j+) if(i2|jimageW-3|jimageH-3) Canny_pixj*imageW+i=0 xff; else /getPixels(i,j); Canny_pixj
49、*imageW+i=Canny_operator(i,j,Gx,Gy,125)?0 xffffffff:0 xff; /for (int j=2;jimageH-2;j+) /for(int i=2;irange?true:false; public double Convolution(int x,int y,double C)/做卷积 double r=0; for(int i=0;i5;i+) for (int j=0;j5;j+) r+=getGray(getPixels(x-(2-i),y-(2-i)*Cj*5+i; /for (int j=0;j5;j+) /for(int i=0
50、;i16); double g1=Math.exp(2.2*Math.log(0 xff double b1=Math.exp(2.2*Math.log(0 xff double rgb1=r1*0.2973+g1*0.6274+b1*0.0753; return Math.exp(1/2.2)*Math.log(rgb1); 完完 内部资料 仅供参考 内部资料 仅供参考 9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#Q
51、cUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRr
52、WwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8
53、9AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#
54、49GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxG89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pD
55、x2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxF
56、yeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4
57、NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9w
58、EwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#
59、KN&MuWFA5uxY7JnD6YWRrWwc vR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5p
60、Dx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纤维材料绿色生产优化
- 山东省食安办工作制度
- 工会职大会工作制度
- 工资支付督查工作制度
- 市场服务中心工作制度
- 市直纪工委工作制度
- 平安街道创建工作制度
- 宜昌市点军区2025-2026学年第二学期四年级语文期末考试卷(部编版含答案)
- 廉洁风险管控工作制度
- 建立大协同工作制度
- 2026中盐东兴盐化股份有限公司招聘17人备考题库带答案详解(a卷)
- 四川省绵阳市梓潼县2026届九年级中考一模语文试卷
- 2026年上海铁路局校园招聘笔试参考题库及答案解析
- 安防监控系统维保表格
- 山东省中小学生欺凌调查认定和复查复核程序指引解读
- TSG 08-2026 特种设备使用管理规则
- 2026年兴趣小组计划
- 国开2026年春季《形势与政策》专题测验1-5答案
- 5.1《阿Q正传》课件+2025-2026学年统编版高二语文选择性必修下册
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- 铁路桥梁检定规范
评论
0/150
提交评论