当前位置:文档之家› 数字信号处理程序课程设计

数字信号处理程序课程设计

数字信号处理课程设计设计题目:姓名:学号:院系班级:组次:指导教师:时间:2015年11月21日——2015年12月6日摘要基于 MATLAB 的图像边缘检测算法的研究和实现图像边缘是图像的最基本的特征。

所谓边缘,就是指图像局部强度变化最明显的部分,存在于区域与区域、目标与目标、目标与背景、基元与基元之间,包含有图像处理中用于识别的关键信息。

边缘检测是数字图像处理中,最基础也是最重要的环节之一。

本文介绍了六种经典的边缘检测算子,包括 Roberts 算子,Sobel 算子,Canny算子,Prewitt 算子,LOG 算法。

并且利用 MATLAB 系统所提供的相关函数等,对同一副图像结合用这些不同的算子分别进行处理,分析并得到他们处理图像的特点。

比较传统的边缘检测算子,因为是基于图像函数的一阶导数进行考察的,因而它们具有共同的特点是计算简单、速度较快,但是对噪声都比较敏感。

LOG 算法和 Canny算法,都是先对图像进行平滑去噪,抗噪性能较好,但是会损失一些边缘信息,其中 LOG算法比较适合处理渐变灰度图像,而 Canny 算子更适合处理阶跃型边缘图像。

小波变换边缘检测法,则能够很好的保留图像的边缘信息,更适合处理小阵列图像。

关键词:MATLAB;图像处理;边缘检测;微分算子目录第一章绪论 (4)1.1设计目的与要求 (4)1.2叙述国内外研究动态 (5)第二章软件设计- 基于MatLab的边缘检测算法 (6)2.1 MatLab简介 (6)2.2边缘检测算法原理 (7)2.2.1 Roberts 边缘算子 (7)2.2.2 Sobel 边缘算子 (8)2.2.3 Prewitt 边缘算子 (8)2.2.4 Log 边缘算子 (8)2.2.5 Canny 边缘算子 (8)2.3边缘检测算法--测试程序 (9)第三章实验结果及分析 (13)3.1 Roberts算子检测图像边缘的实现 (13)3.2 Sobel算子检测图像边缘的实现 (14)3.3 Prewitt算子检测图像边缘的实现 (15)3.4高斯一拉普拉斯LOG算子检测图像边缘的实现 (16)3.5 Canny算子检测图像边缘的实现 (17)第四章总结与心得体会 (20)参考文献 (21)致谢 (22)第一章绪论1.1设计目的与要求二十世纪五十年代,人们开始提出一些数字图像处理的技术,是通过计算机对图像所包含的信息进行加工和处理后,使得图像中的信息能够为我们所用。

从早期的报纸业,到1964年,在航天领域中,有里程碑作用的“旅行者七号”太空船在太空中拍摄了月球的照片,并回传给地球上的工作站成功处理,到现在的我们所能接触到的统计学、医学等等各种领域之中,数字图像处理己经迅速发展,并成为了我们不可或缺的重要技术和研究对象。

图像处理中最关键的一步就是对图像信息进行分解,提取一些具有某种特征的图像信息。

图像的边缘负载的信息,能够在图像处理过程中起到识别的作用,这也正是他作为图像基本特征的重要原因[l]。

与此同时,之于图像边缘在图像的要素中占有举足轻重的地位,相对的,对边缘进行检测的技术,也在处理图像的各种技术之中,作用不可小觑。

图像边缘定义为图像中像素灰度有阶跃变化或屋顶变化的那些像素的集合。

基于边缘灰度的不连续性,遍历考察图像中单个像素点的局部灰度分布情况,利用一阶和二阶导数来进行边缘检测。

在长期对图像边缘检测的研究中,不断涌现出了许多种图像边缘检测的方法。

而到目前为止,己经提出的各种方法,对于图像边缘检测的效果,都有自己的优点和不足,也有自己的适用范围。

并没有存在一种比较普遍适用的边缘检测方法。

因此,对于寻找和创造更新的、更有效的边缘检测方法仍然是图像处理中比较主流的方向。

图像理解是图像处理的一个重要分支,研究为完成某一任务则需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。

边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。

在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。

边缘检测实际上就是检测图像特征发生变化的位置。

“飞思卡尔”杯全国大学生智能车竞赛中,要求各参赛队赛车在规定的赛道上行驶,速度快者胜出。

根据比赛规则:比赛过程中,如果赛车碰到赛道两边的立柱并使之倾倒或移动,裁判员将判为赛车冲出跑道(实际执行时,是根据裁判的肉眼判断)。

赛车前两次冲出跑道时,由裁判员取出赛车交给比赛队员,立即在起跑区重新开始比赛,该圈成绩取消。

因而在设计时,必须首先考虑找出赛道的边界点,然后再设计算法实现赛车行驶线路。

1.2叙述国内外研究动态图像处理技术诞生于二十世纪中叶,经过10多年的迅速发展,逐渐形成了一个专门的学科,在此其中,边缘检测技术也有相当长的一段研究发展史。

随着图像处理技术逐渐成熟,越来越多的科研领域关注到这一技术,给予重用且成效显著。

无论是传统的工业检测等领域,还是近年新兴起来的人工智能等更为新颖的学科都包含在其中。

数字图像处理技术未来的发展速度和空间不可限量。

在长期对图像边缘检测的研究中,不断涌现出了许多种图像边缘检测的方法。

现有的边缘检测方法有比较经典的检测方法,如差分边缘检测、Roberts operator, Prewitt、operator ,神经网络、Sobel operator等。

也有最近兴起的小波变换图像边缘检测法和fuzzy theory,基于人工智能等方法。

然而边缘检测技术发展至今,当前己经提出的各种方法之中,对于图像边缘检测的效果,都有自己的优点和不足,也有自己的适用范围。

而鲜有能够适用于多数普遍情况的方法。

因此,对于寻找和创造适用范围更为广泛、处理效果更佳的边缘检测方法仍然是图像处理中比较主流的方向。

第二章软件设计- 基于MatLab的边缘检测算法2.1 MatLab简介MATLAB通常又可被称作是矩阵实验室(根据其英文全称Matrix Laboratory得名)。

作为一款用于计算数值和处理图形图像的软件系统,MATLAB被应用在很多相关领域中,如在矩阵代数中,可利用MATLAB进行矩阵的计算,在数字信号处理领域中,可利用MATLAB进行动态仿真等等。

他的几大特点可概括为以下几点:1)功能强的数值运算。

在MATLAB软件的系统函数中,为使用者提供了数五百多种计算函数。

这些系统函数不仅数量多,而且涵盖学科范围广泛,包括有数学、统计以及科学等学科。

函数的表达比较自然,为使用者提供一种解决问题的模式,让问题的解答像解决数学公式一样,简单而方便,为用户大大减少了操作电脑的时间和精力,而可以投入更多的精力在问题的解决上。

2)先进的资料视觉化功能。

MATLAB用户可使用其提供的物件导向图像构架进行视觉数据分,绘制高品质图形,能够帮助用户很好的完成图文并茂的文章。

3)高阶但简单的程式环境。

MATLAB语言是一种脚本语言,不需要编译和联结就能够立即执行。

相比较FORTRAN或C语言等编译语言,MATLAB语言更为简单、易学、易用,能够让编程者更快速的学会如何编写程序,并且高效地完成工作,而能够大大的节约了时间。

此外,MATLAB还提供了很多方便编程者使用的内建功能。

4)开放及可延伸的架构。

MATLAB系统提供大量的开源代码,包括内部的数学原始码,可以让使用者能够检视其运算法,并可以根据自己的需要,更改现有的函数。

同时,使用者也可以在MATLAB环境的基础上开发自己的功能函数,让MATLAB能够更好地为开发者所使用。

同样对于MATLAB的各种工具包也是如此,使用者可以根据自己的需求进行修改或者创新、开发,形成这对性的工具包,以供此类开发方便使用。

5)丰富的程式工具箱。

程式工具箱是MATLAB为使用者提供了另一大便利组件,他们由一些针对某些领域而编写的函数的集合。

目前己经开发完成,并能够提供给用户使用的有符号数学工具箱,信号处理工具箱,偏微分方程工具箱等等。

这些丰富的程式工具箱,解决了用户针对某领域中的一些普遍处理需求,有效的节约了开发者的时间。

由此可见,MATLAB系统提供了一个更为使用者所方便操作的数学系统环境,且采用矩阵为基本的数据结构,更可在很大程度上的简化了编程。

MATLAB语言所定义的语法规则,相比较于其他高级编程语言,更为简单,更容易学习,程序调试可设置断点,存储中间结果,使得MATLAB程序调试变得简单、快捷。

MATLAB的强大之处还在于他的灵活性和友好性。

他能够跟许多程序相结合使用,如C语言,FORTRAN语言和Microsoft Word等。

当使用者在MATLAB 系统中编写程序的时候,可以根据需要,直接调用C或者FORTRAN的功能函数,同样,在编写C或FORTRAN程序时,也可以根据需要直接调用MATLAB 的函数或命令,更加方便而充分地利用MATLAB中强大的各种数学处理功能。

通过将MATLAB程序与其他语言程序灵活而有机的结合在一起使用,不仅可以弥补MATLAB程序中循环速度慢的缺点,也可以供其他程序直接利用MATLAB程序生成的MAT文件执行矩阵数据的读取和写入,从而大大地提高工作效率。

2.2边缘检测算法原理由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容。

首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。

边缘检测的方法大多数是基于方向导数掩模求卷积的方法,因为导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。

以下是几种常用的边缘检测算法。

2.2.1 Roberts 边缘算子Roberts 边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差,实际是该点连续梯度的近似值,而不是所预期的点处的近似值。

另外该算子提取的边缘较粗,对噪声很敏感,并且需要手动地指定一个阈值 (Threshold),对不同的图像使用不同的阈值后,边界提取效果差别很大。

因此 Roberts 算子一般使用自适应的阈值,并对提取的边缘进行细化处理,这样将能有效地改善Roberts 算子的边界提取效果。

一般适用于低噪声图像。

2.2.2 Sobel 边缘算子Sobel 算子是边缘检测器中最常用的算子之一,一般可以利用快速卷积函数,简单有效,因此应用很广泛。

该算子有两个,一个是检测水平边沿的;另一个是检测垂直平边沿的。

相关主题