图像边缘检测 联系客服

发布时间 : 星期四 文章图像边缘检测更新完毕开始阅读d801c44033687e21af45a950

沈阳航空航天大学电子信息工程学院毕业设计(论文)

第五章 MATLAB仿真

5.1 MATLAB 概述

MATLAB软件由美国Math Works公司于1984年推出,历经十几年的发展和竞争, 现已成为(IEEE) 国际公认的最优秀的科技应用软件之一。作为一个跨平台的软件,MATLAB已推出Unix、Windows9x/NT、Linux和MAC等十多种操作系统平台下的版本,大大方便了在不同操作系统平台下的研究工作。

现在MATLAB 已经发展成为一个系列产品:MATLAB主包和各种工具箱 (TOOLBOX)。目前已经推出了30多个工具箱, 这些工具箱可分为两大类: 功 能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、 图示建模仿真功能、文字处理功能以及硬件实时交互功能, 能用于多种学科。而学科性工具箱是专业比较强的,如控制工具箱、信号处理工具箱、图像处理工具箱和小波工具箱等多个学科的专业工具箱。借助于这些工具箱,各个层次的研究人员就可方便地进行研究工作, 提高工作效率。

5.1.1 MATLAB 特点

MATLAB有三大特点: 一是功能强大。主要包括数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算。二是界面友好, 编程效率高。MATLAB是一种以矩阵为基本单元的可视化程序设计语言, 语法结构简单,数据类型单一,指令表达与标准教科书的数学表达式相近。三是开 放性强。MATLAB有很好的可扩充性, 可以把它当成一种更高级的语言去使用。使用它很容易编写各种通用或专用应用程序。

5.1.2 MATLAB 主要功能

MATLAB之所以成为世界顶级的科学计算与数学应用软件,是因为它随着版本的升级与不断完善而具有愈来愈强大的功能。

(1)MATLAB数值计算功能。MATLAB出色的数值计算功能是使之优于其他数学应用软件的决定性因素之一。

(2)符号计算功能。MATLAB 符号运算的独特之处:无须事先对变量赋值,而所得的结果以标准的符号形式表达,符号计算的整个过程以字符进行。

(3)数据分析功能。MATLAB可以给计算数据以二维、三维乃至四维的图形表现。这不仅使数据间的关系清晰明了,而且对于揭示其内在本质有着非常重要的作用。

-21-

沈阳航空航天大学电子信息工程学院毕业设计(论文)

(4)动态仿真功能。MATLAB提供了一个模拟动态系统的交互程序 SIMULINK,用户通过简单的鼠标操作,就可建立起直观的系统模型,并进行仿真。

(5)图形文字统一处理功能。MATLAB Notebook成功地将Microsoft Word与 MATLAB集成为一个整体,为文字处理、科学计算、工程设计营造了一个完美统一的工作环境。它既拥有Word 强大的文字处理功能,又能从Word访问 MATLAB的数据计算和可视化结果。

5.1.3 MATLAB 在图像处理中的应用

图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增 强、线性滤波和滤波器设计、变换、图像分析和统计、二值图像操作等。下面就MATLAB在图像处理中各方面的应用分别进行介绍。

(1)图像文件格式的读写和显示。

MATLAB提供了图像文件读入函数imread(),用来读取如:bmp、tif、pcx、jpeg、xwd等格式图像文件;图像写出函数imwrite(),还有图像显示函数image()、imshow()等等。

(2)图像处理的基本运算。

MATLAB提供了图像的和、差等线性运算,以及卷积、相关、滤波等非线性运算。例如conv2(I,J)实现了I,J两幅图像的卷积。

(3)图像变换。MATLAB提供了一维和二维离散傅立叶变换、快速傅立叶变换、离散余弦变换及其反变换函数,以及连续小波变换、离散小波变换及其反变换。

(4) 图像的分析和增强。针对图像的统计计算,MATLAB提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。

(5)图像的数学形态学处理。针对二值图像,MATLAB提供了数学形态学运算函数:腐蚀(Erode),膨胀(Dilate)算子,以及在此基础上的开(Open)、闭(Close)算子、厚化(Thicken)、薄化(Thin)算子等丰富的数学形态学运算。

此外,MATLAB还提供了丰富的帮助文档文件,为我们编程提供了极大的方便。

5.2 基于MATLAB的边缘检测

-22-

沈阳航空航天大学电子信息工程学院毕业设计(论文)

在MATLAB中,函数edge()用于灰度图像边缘的提取,其中包括了sobel,prewitt,roberts,log,canny等边缘检测算子,不同算子的检测结果各不相同,对噪声的处理能力也不相同。我们可以直接调用这些算子来进行边缘检测,基本格式为:

X=edge(f,’method’,parameters)

f为被检测图像,method之间为所选择的算子,X为检测后图像,parameters为另一个可调的参数,不同算子所对应的这个参数格式不同,各个函数的基本格式为:

Sobel算子:

X=edge(f,’sobel’, T , dir)

其中,T是一个指定的阈值,dir指定检测边缘的首选方向,包括’both’、 ’horizontal’或 ’vertical’。

Prewitt算子:

X=edge(f,’prewitt’, T , dir) Roberts算子:

X=edge(f,’roberts’, T , dir) Log算子:

X=edge(f,’log’, T , sigma) 其中sigma为标准偏差。 Canny算子:

X=edge(f,’canny’, T , sigma)

其中,T为一个向量,T=[T1,T2]。

利用这5种边缘检测算子采用不同参数对图像进行边缘检测得到的结果如下:

-23-

沈阳航空航天大学电子信息工程学院毕业设计(论文)

采用默认的参数检测结果如下:

图5.1 原始图像检测结果

-24-