图像边缘检测程序设计.doc
《图像边缘检测程序设计.doc》由会员分享,可在线阅读,更多相关《图像边缘检测程序设计.doc(32页珍藏版)》请在沃文网上搜索。
1、*实践教学*兰州理工大学计算机与通信学院2012年秋季学期 图像处理 综合训练题 目: 图像边缘检测程序设计 专业班级:姓 名: 学 号: 指导教师: 成 绩: 29目 录摘 要1一、前言2二、算法分析与描述3三、详细设计过程7四、调试过程中出现的问题及相应解决办法11五、程序运行截图及其说明12六、简单操作手册15设计总结18参考资料19致谢20附录21摘 要图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。图像处理方法有光学方法和电子学方法。数字图像处理是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。边缘检测是目前图像分析领域中的
2、基础技术,也是数字图像处理中的一项重要内容。它利用图像一阶倒数的极值或二阶倒数的过零点信息来提取边缘。本文对图像边缘检测的几种经典算法包括一阶微分的Sobel算子、Robert算子、Priwitt算子,二阶微分laplacian算子及Canny算子。通过实例图像对不同边缘检测算法的效果进行分析,比较了不同算法的特点和适用范围。关键词:图像处理;边缘检测;一阶微分;二阶微分一、前言在实际图像边缘检测问题中图像的边缘作为图像的一种基本特征经常被应用到较高层次的图像应用中去。它在图像识别图像分割图像增强以及图像压缩等的领域中有较为广泛的应用也是它们的基础。 图像边缘是图像最基本的特征之一往往携带着一
3、幅图像的大部分信息。而边缘存在于图像的不规则结构和不平稳现象中也即存在于信号的突变点处这些点给出了图像轮廓的位置。这些轮廓常常是我们在图像边缘检测时所需要的非常重要的一些特征条件这就需要我们对一幅图像检测并提取出它的边缘。边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,同时边缘也是不同区域的分界处。边缘检测是图像特征提取的重要技术之一, 边缘常常意味着一个区域的终结和另一个区域的开始。 图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构,它对于我们进行高层次的特征描述、识别和理解等有着重大的影响。又由于
4、边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要属性。图像理解和分析的第一步往往就是边缘检测。在工程应用中占有十分重要的地位,所以人们一直在致力于研究和解决如何构造出具有良好性质及好的效果的边缘检测算子的问题。 本次的目的是从理论上对几种经典的边缘检测算法(Sobel算子、Robert算子、Priwitt算子、laplacian算子及Canny算子)进行分析,并用实现这些算法。最后,通过实例图像对不同边缘检测算法的效果进行分析,找出各种算法的适用范围。二、算法分析与描述2.1基于一阶微分的边缘的检测1、Sobel算子 Sobel
5、算子和P rew it t 算子都是一阶的微分算子,都是先对图像进行平滑处理, 虽然两者都是加权平均滤波, 但是前者邻域的像素对当前像素产生的影响不是等价的, 距离不同的像素具有不同的权值, 对算子结果产生的影响也不同。这两种算子对噪声都有一定的抑制作用, 但不能完全排除检测结果中出现虚假边缘的情况。这两者对灰度渐变低噪声的图像有较好的检测效果, 但是对于混合多复杂噪声的图像处理效果就不理想了。 正如前面所讲,采用邻域可以避免在像素之间内插点上计算梯度考虑一下上图中所示的点周围点的排列Sobel算子也是一种梯度幅值, (11)其中的偏导数用下式计算: (12) 其中常数和其他的梯度算子一样,和
6、可用卷积模板来实现,如图1.1所示: 图11 请注意这一算子把重点放在接近于模板中心的像素点Sobel算子是边缘检测器中最常用的算子之一 (图12)图12 用于说明Sobel算子和Prewitt算子的邻域像素点标记 Prewitt算子与Sobel算子的方程完全一样,只是常量c=1所以 (13)请注意,与Sobel算子不同,这一算子没有把重点放在接近模板中心的像素点如图1.3所示2、Robert算子 Robert算子边缘检测算子也叫交叉差分算子,是一种利用局部差分寻找边缘的算子,用领域的处理。边缘,是指周围像素灰度有阶跃变化或屋顶等变化的那些像素的集合。图像的边缘对应着图像灰度的不连续性。显然图
7、像的边缘很少是从一个灰度跳到另一个灰度这样的理想状况。真实图像的边缘通常都具有有限的宽度呈现出陡峭的斜坡状。 边缘的锐利程度由图像灰度的梯度决定。梯度是一个向量,f指出灰度变化最快的方向和变化量。 (1.5) (1.6) (1.7)梯度大小由确定。而梯度方向则由确定,因此最简单的边缘检测算子是用图像的垂直和水平差分来逼近梯度算子: (1.8)因此当我们寻找边缘的时候,最简单的方法是对每一个像素计算出(1.8)的向量,然后求出它的绝对值。利用这种思想就得到了Roberts算子: (1.9)其中f(x,y)是具有整数像素坐标的输入图像。其中g(x,y)由下面的模板计算: (13) 同前面的梯度算子
8、一样,差分值将在内插点x+1/2;y+1/2处计算Roberts算子是该点连续梯度的近似值,而不是所预期的点x,y处的近似值。3、laplacian算子平滑过的阶跃边缘二阶导数是一个在边缘点处过零的函数。拉普拉斯算子是二阶导数边缘算子。函数的拉普拉斯算子公式为 (17) 使用差分方程对和方向上的二阶偏导数近似如下:5 (18) 这一近似式是以点x,y+1为中心的。用y-1替换y,得到 (19)它是以点为中心的二阶偏导数的理想近似式,类似地, (110)把这两个式子合并为一个算子,就成为下面能用来近似拉普拉斯算子的模板: (111) 当拉普拉斯算子输出出现过零点时就表明有边缘存在,其中忽略无意义
9、的过零点(均匀零区)。原则上,过零点的位置精度可以通过线性内插方法精确到子像素分辨率,不过由于噪声,结果可能不会很精确。 4Canny算子检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。检测阶跃边缘的大部分工作集中在寻找。 Canny边缘检测器是高斯函数的一阶导数,是对信噪比与定位之乘积的最优化逼近算子Canny 1986。我们将通过下面的符号对Canny边缘检测器算法作一概括说明。用表示图像,使用可分离滤波方法求图像与高斯平滑滤波器卷积,得到的结果是一个已平滑数据阵列 , 其中是高斯函数的散布参数,它控制着平滑程度。 已平滑数据阵列的梯度可以使用一阶有限差分近似来计算与偏导
10、数的两个阵列与: (112)在这个正方形内求有限差分的均值,以便在图像中的同一点计算x和y的偏导数梯度。幅值和方位角可用直角坐标到极坐标的坐标转化公式来计算: (113) (114) 其中,反正切函数包含了两个参量,它表示一个角度,其取值范围是整个圆周范围内。为高效率地计算这些函数,尽量不用浮点运算梯度的幅度和方向也可以通过查找表由偏导数计算。三、 详细设计过程1、分析图像的大部分主要信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,是图像中灰度变化比较剧烈的地方,即通常所说的信号发生奇异变化的地方。奇异信号沿边缘走向的灰度变化剧烈,通常将边缘划分为阶跃状和屋顶状两种类型如图3.1所
11、示。阶跃边缘中两边的灰度值有明显的变化;而屋顶状边缘位于灰度增加与减少的交界处。在数学上可利用灰度的导数来刻画边缘点的变化,对阶跃边缘、屋顶状边缘分别求其一阶、二阶导数。图3.1 阶跃边缘和屋顶状边缘处一阶和二阶导数变化规律(其中第一排为理想信号,第二排对应实际信号)2、 工作流程分析系统工作流程较为简单,功能用于对图像进行边缘检测,工作流程并不复杂。双击ch1_1.exe文件,系统界面就出现了,点击文件,然后选择打开,打开BMP格式的图片文件,此时图片就会显示在工作区域;主要模块的系统过程如图3.2所示 开始 读取待测图片 边缘检测Canny算子Sobel算子laplacian算子Priwi
12、tt算子Robert算子 保存 退出 图3.24、一阶微分算法的实验结果与分析(1)Sobel算子公式的定义为:(2)实验结果分析 以cameraman图片为例,用Sobel算法,分别给检测结果。 理论上Sobel算子可以轻易在空间上实现,Sobel边缘检测器不但可以产生较好的边缘检测效果由5.2图可以看出Sobel算子虽然检测到的边缘信息很丰富,也较为连续,但是边缘很模糊,严重的影响了视觉效果。(4) Robert算子的公式定义为: (5)Prewitt算子: Prewitt算子与Soble算子不同的地方在于没有把重点放在接近模板中心的像素点。Prewitt算子首先进行邻域平均或加权平均,然
13、后进行微分。(6)实验结果分析 以cameraman图片为例,分别用Roberts、Prewitt两种算法,分别给检测结果。 通过图5.3和图5.4知, Roberts算子、Prewitt算子,都能够比较准确的检测出图像的边缘。 基于一阶微分的边缘检测算子具有实现简单、运算速度快等特点,检测结果不可靠,不能准确判定边缘的存在及边缘的准确位置,造成这种情况的原因:(1)实际边缘灰度与理想边缘灰度值间存在差异,这类算子可能检测出多个边缘;(2)边缘存在的尺度范围各不相同,这类算子固定的大小不利于检测出不同尺度上的所有边缘;(3)对噪声都比较敏感。5、二阶微分算法的实验结果与分析(1)Laplaci
14、an算子的公式为: (2) Canny算子的公式为: (3)实验结果分析 以cameraman图片为例,分别用Laplacian、Canny两种算法,分别给检测结果。 由图5.5可以看出Laplacian算子:对图像中的阶跃性边缘点定位准确。 Canny:采用高斯函数对图像进行平滑处理,该算子也将一些高频边缘平滑掉,造成边缘丢失,采用了双阈值算法检测和连接边缘,边缘的连续性较好。 Laplacian算子是对二维函数进行运算的二阶导数算子,与方向无关,对取向不敏感,因而计算量要小。根据边缘的特性,Laplacian算子可以作为边缘提取算子,计算数字图像的Laplacian值可以借助模板实现,它相
15、当于高通滤波,常会出现一些虚假边缘。Canny算子是一个具有滤波、增强和检测的多阶段的优化算子。 在进行处理前,Canny算子增强边缘是将邻域(或局部)强度值有显著变化的点突出来,一般通过计算梯度幅值来完成。Canny分割算法采用一阶偏导的有限差分来计算梯度的幅值和方向。对一个边缘来说,其一阶导数在边界处存在一个向上的阶跃,或者其二阶导数过零点。在处理过程中,Canny算法还将经过一个非极大值抑制的过程。最后Canny算法将采用两个阈值来连接边缘。但也有不足之处,Canny算法对整幅图像采用同一高斯函数进行滤波,无法顾及图像局部特征信息,边缘检测的阈值需要预先设定。先确定一个阈值系数,该系数定
16、义为梯度小于阈值的像素数所占边缘像素总数的比例,以此来确定阈值。这种方法没有利用图像自身的信息,不具有自适应能力。四、调试过程中出现的问题及相应解决办法Matlab语言是一种解释执行的语言,它灵活、方便,其调试程序手段丰富,调试速度快。Matlab语言与其它语言相比,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种非常简单的语言。但之前并没有熟悉Matlab的编译,出现直接把程序复制粘贴的错误,后来才学习正确的编译运行过程。代码在运行过程中的错误:file
17、name, pathname = uigetfile( . *.bmp;*.jpg;*.png;*.jpeg, Image Files (*.bmp, *.jpg, *.png, *.jpeg); . *.*, All Files (*.*), . Pick an image);axes(handles.axes_src);fpath=pathname filename;此代码缺少了imread读入图片,因此不能够正确的运行。应在代码后面加入如下代码:img_src=imread(fpath);五、程序运行截图及其说明1、 图5.1:是原图,做为参考图片 图5.2、图5.2:是Sobel算子运
18、行出来后的图片,能检测到的边缘信息较为连续,但边缘很模糊。 图5.23、图5.3:是Roberts算子运行出来后所得的图片,但边缘较细。图5.34、图5.4:是Prewitt算子运行后的图片,所得的图片精度不高,边缘较粗。 图5.45、图5.5:是Laplacian算子所得,对图像中的阶跃性边缘点定位准确,有信息丢失,边缘不够连续。图5.56、图5.6:是Canny算子所得,边缘较联系,但还是有丢失边缘信息。图5.6六、简单操作手1、Matlab运行环境简介 1)启动Matlab 可由下列方法之一进入Matlab命令行窗口: (1) 开始 程序 Matlab。 (2) 双击桌面Matlab图标
19、。2)编制、运行Matlab程序可用下列方法之一编制和运行Matlab程序选择菜单条中的“File Open (或New)进入Matlab程序编辑器,在编辑器中编辑程序。 A. 命令行以“,”或“;”结尾。以“,” 结尾运行时显示该命令运行结果,以“;” 结尾不显示该命令运行结果。 B. 注释前加“%”。 C. 运行操作可使用命令快捷键。2、图像文件的读、写和显示 图像文件的读取 读图像文件的函数格式: A=imread(路径、文件名及文件后缀),如 I=imread(e:image.bmp) 其含义:将e盘中的bmp文件image赋给变量I,bmp(windows bitmap)为位图文件。
20、3、得到的窗口如图6.1,文件菜单里包括:打开,保存,退出按钮;图像处理菜单里包括:Sobel算子、Robert算子、Priwitt算子、laplacian算子、Canny算子功能相应的按钮,分别为Sobel、Robert、Priwitt、laplacian、Canny。 图6.14、打开图片信息:点击文件菜单里的打开选择所要打开文件夹里的图片,则有如图6.2所示。 图6.25、图像边缘检测:点击图像处理菜单,选择里面的算子所对应的按钮进行操作,然后选择文件菜单里的保存按钮保存图片,保存到相应的文件夹,则得到的图如图6.3所示。 图6.36、退出:若要退出,点击文件菜单里的退出按钮,则可退出图
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 边缘 检测 程序设计