4 数字图像处理(MATLAB版) 第8章:图像压缩。工其箱中没有数据压缩函数。在这一章中,我们开发了一个可用于这一目 的的函数集。 第9章:形态学图像处理。本章解释并说明了PT中大量用于二值和灰度图像形态学图像处理 的函数。 第10章:图像分割。本章解释并说明了用于图像分割的PT函数集。此外,还开发了用于Hough 变换处理和区城生长的新函数 第11章:表示和描述。本章开发了几个用于对象表示和描述(句括链码和多边形表示)的新 函数,还开发了几个用于对象描述的函数,如傅里叶描绘子、纹理和矩不变量。这些函数是对PT 中的区域特性函数集的补充。 第12章:对象识别。本章的重要特点之一是计算欧几里得距离和Mahalanobis距离的函数的有 效实现。这些函数在模式匹配中扮演着重要角色。本章还包含有在MATLAB中如何操作符号率的 广泛讨论。串操作和匹配在结构模式识别中很重要。 除前述内容外,本书还包括有三个附录。 附录A:包含了所有PT和本书中开发的新图像处理函数,还包括了相应的MATLAB函数。这 些有用的参考资料提供了上具箱和本书中所有函数的概览。 附录B:包含有在MATLAB中如何实现图形用户界面(GUI)的讨论。GUI是对本书材料的 有用补充,因为它们简化了交互式函数的使用。 附录C:当在某章中解释一个新概念时,在该章的正文中会包含新函数的列表。除此之外,附 录C中也包含了这些新函数的列表。过长的函数列表也包含在此处。某些函数的列表只在该附录中 列出,目的在于不影响正文的连续阅读件。 1.5本书的Web站点 本书特色之一是提供网站支持.网站地址为www.prenhal.com/gonzalezwoodseddins。.该网站在 如下领域为本书提供支持 ●可下截的M文件,包括书中的所有M文件 ●培训 ·计划 ●授果材料 ◆数据库链接,包括本书中的所有图像 ●书的更新 ●出版背景京 该网站与Gonzalez and Woods所著的《数字图像处理》 一书的网站集成在一起 www.prenhall.com/gonzalezwoods 它为教学和研究提供了额外的支持。 1.6 MATLAB工作环境 本节简要介绍使用MATLAB的一些重要操作
6 数字图像处理(MATLAB版)】 启动一个菜单,从菜单中可选择除执行命令外的各种选项。当在工作会话中试用各种命令时,这是 很有用的特性。 1.6.2使用MATLAB编辑器创建M文件 MATLAB编辑器既是用于创建M文件的文本编辑器,也是图形MATLAB调试器。编辑器可以 自己以一个窗口出现出,或者以桌面上的子窗口出现。M文件用扩展符.m来表示,如pixeldup,m。 MATLAB编辑器擅口有许多下拉菜单,用于保存、查看和调试文件。因为MATLAB编辑器可执行 某些筒单的检查,并且可用彩色区分各种编码元素,因此,在编写和编辑M函数时,应首选使用 该文本编辑器。要打开该编辑器,可在命令窗口的提示符处键人e1t命令。类似地,在提示符下 键人edit filename,会在编辑器衡口打开M文件filename.m,编辑工作准备就绪。正像前 面提到的那样,文件必须在当前目录中,或者在搜索路径的目录中。 1.6.3获得帮助 获得在线帮助的主要方法是应用MATLAB帮助浏览器C,要打开帮助浏览器,可在桌面工具 条上双击向号符(?),或在命令窗口提示符处键人helpbrowser。帮助浏览器是集成到MATLAB 桌面的Wb浏览器,它显示超文本标记语言(HTML)文档。帮助浏览器由两个面板组成,即用于 寻找信息的帮助导航面板和用于查看信息的显示面板。导航面板上的自我解释标签用于执行搜素 例如,要得到特殊函数的帮助,可选择Search标签,并为SearchType选择Function Name,然后 在Search for域中键人该函数的名称。在MATLAB会话开始后,最好打开帮助浏览器,以便在编 码开发或其他MATLAB任务期间得到帮助。 获得某个函数的帮助的另一种方法是,在提示符处键人doc及该函数名。例如,若键人doc format,则会在帮助浏览器的显示面板中显示format函数的说明。若浏览器未打开,则该命令 会打开浏览器。 M函数有两种可以由用户显示的信息类型。第一种信息类型称为H1行,它包含函数名和一行 描述。第二种信息类型称为帮助文本块(详细内容将在2.I0.1节中讨论。在提示符处键人he1p及 函数名,就会在命令窗口显示函数的H1行和帮助文本。有时,这种信息可能比帮助浏览器中的信 息更新、更多,因为它是直接从相关M函数的文档中提取的。键人1 ookfor及一个关键字,会显 示所有包含该关键字的H1行。在寻找特殊主题但又不知适用函数的名称时,该函数很有用。例如, 在提示符处键人lookfor edge,会显示所有包含该关键字的H1行。因为HI行包含函数名,所 以就有可能使用其他的帮助方法来查找指定的函数。在提示符处键人1 ookfor edge-a11,会 显示所有函数的山行,而这些函数会在Hl行或帮助文本块中包含单词ege。还会检测到包含字 符edge的单词。例如,在H1行或帮助文本中包含单词polyedgef的函数的Hl行,也会显示出来。 除1 ookfo:方法外,在使用前面播述的任何方法显示一个M函数的信息时, 帮助页”是 MATLAB的常用术语。这里建议读者熟悉这些获取信息的方法。因为在后续章节中,我们常常只 给出MATLAB和PT函数的语法。这样做的原因有两个,一是本书的篇幅限制,二是防止讨论离 题。在这些情况下,我们仅给出执行函数的语法。通过在线搜索方法,读者可以更详细地研究感 兴趣的函数 最后,1.3节中提到的Math Works网站包含有丰高的帮助材料、他人开发的函数以及其他资源。 ①在本书中应用在线这一术语来指在本地计算机系统中可用的信息。而不是互联网上可用的值息
第1章绪言 7 1.6.4保存和检索工作会话 在MATLAB中,保存和载人一个完整的T作会话或选取的工作空间变量有几种方法。最简单 的方法如下。 为保存一个完整的工作空间,可简单地在工作空间浏览器窗口中的任何空白处右键单击,并在 出现的菜单中选择Save Workspace As。这会打开 一个目录窗口,该窗口允许命名文件及在系统中 选择任何文件夹,并在文件夹中保存文件。然后,可简单地点击Sve按钮。为了从工作空间保存 一个所选的变量,可左键单击以选择该变量,然后在突出显示的区域右键单击。然后,在出现的菜 单中选择Save Selection As。这将再次打开一个窗口,从中可选择一个文件夹来保存该变量。要选 择多个变量,可Shin.单击或Control-单击,然后使用保存单个变量的过程。所有文件都以双精度二 进制格式保存,扩展名为,mat。这些已保存的文件通常称为MAT文件。例如,名为mywork.2003 02_10的会话在保存时,将会出现MAT文件nywork_.2003_02_10.mat。类似地,称为final_image 的已保存图像(在工作空间中它是一个单变量)在保存时,将会以nal image.mat的形式出现。 要载人保存过的工作空间和/或变量,可在工作空间浏览器口的工具条上左键单击文件夹图 标。这将打开一个窗口,这时可从中选择一个含有感兴趣MAT文件的文件夹。双击选中的MAT文 件或选择Opn按钮,可在工作空间浏览器窗口中恢复文件的内容。 在提示符处键人带有合适文件名及路径信息的gave和上od命令,也可以实现前几段描述的 相同结果。这种方法虽然不太方便,但也有其优点。这里建议并鼓励读者使用帮助浏览器来更多地 了解这两个函数的相关信息。 1.7 参考文献的组织方式 本书的所有参考文献都按作者和日期这种格式列出,如Soi[2003]。本书理论内容的大多数 背景材料源于Gonzalez and Woods2002。非此情形时,会在讨论的适当位置给出新的参考文献。适 用于所有章节的参考文献,如MATLAB手册和其他常用的参考文献,均标识在本书后面的“参考 文献”中。 小结 除简单介绍表示法和基本的MATLAB工具外,本章还强调了在求解数字图像处理问题时理 原型环境的重要性。在后续各章中,我们将开始安排理解PT函数所需的基础内容,并介绍一组贯 穿全书的基本编程概念。第3章到第12章的内容骑越了很宽的主题,它们是数字图像处理应用的 主流。尽管涉及的主题不同,但这些章节的讨论却遵循相同的基本主题,即演示并说明如何将 MATLAB和PT函数与新代码结合起来,以便求解宽泛的图像处理问题
第2章基本原理 前言 正如前一章所述,MATLAB为数字图像处理带来了一套广泛的函数,这些函数处理的是多维 数组,而图像(二维数值数组)正是多维数组的一种特例。图像处理工具箱(PT)是扩展MATLAB 数值计算能力的函数巢,这些函数与MATLAB语言的简洁表示,使得大量的图像处理操作可以按 简洁明了的编码方式进行,从而为求解图像处理问题提供了一个理想的软件原型环境。在这一章中, 我们将介绍MATLAB表示法的基本知识,讨论大量的PT基本属性和函数,并介绍能进-一步增强 PT的程序设计概念。因此,本章中的内容是后续大部分章节的内容的基础。 2.1 数字图像的表示 一幅图像可以被定义为一个二维函数f化,),其中x和y是空间(平面)坐标,∫在任何坐标 点(,》处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是 由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像 (红,绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别 处理三幅独立的分量图像即可。彩色图像处理将在第6章详细讲解。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转换成数字形式,就要求数字化坐标 和振幅。将坐标值数字化称为取样;将振幅数字化称为量化。因此,当f的xy分量和振幅都是有 限且离散的量时,称该图像为数字图像。 2.1.1坐标约定 取样和量化的结果是一个实数矩阵。在本书中,我们使用两种主要的方法来表示数字图像。假 设对-一辆图像f:,)取样后,得到了一幅有者M行和N列的图像。我们称这幅图像的大小为M×N。 坐标x)的值是离散量。为使符号表示清晰和方使,我们为这些离散坐标使用整数值。在很多图像 处理书籍中,图像原点定义在(x,)=(0,0)处。沿图像第-行的下一坐标值为x,)=(0,1)。注意, 符号(0,1)用来表示沿第一行的第二个取样,而不表示图像在取样时的实际物理坐标值。图2.1(a)显 示了这种坐标约定。注意,x的范围是从0到M-1的整数,y的范围是从0到N-1的整数。 工具箱中用于表示数组的坐标约定与前段所述的坐标约定有两处不同。首先,工具箱使用(似,c 而不是(x,y)来表示行与列,但坐标顺序与前段所述的坐标顺序一致。在这种情况下,坐标元组,b) 的第一个元素表示行,第二个元素表示列。另一区别是该坐标系统的原点在(,c)=1,1)处。因此, r是从1到M的整数,c是从1到N的整数,如图2.1b)所示 1PT文档将图2.1(b)中的坐标称为像素坐标。PT还采用另一种较少使用的坐标约定,称为空 间坐标,这种坐标使用x来表示列,使用y来表示行。这与我们所用的变量x与y正好相反。在本 书中,除少量例外外,我们将不使用PT的空间坐标约定,但读者在PT文档中一定会遇到这种 术语
第2章基本原理 0012· …N-1 23 M-1 一个像案一 一个像素 (a) b 图2.1所用的坐标约定:@)多数图像处理书籍中所用的 坐标约定;b)图像处理工具箱中所用的坐标约定 2.1.2图像的矩阵表示 由图2.1(a)所示的坐标系统和前述讨论,我们可以得到如下数字化图像函数的表示 「f00) ff0.1} f0N-1)7 fx,y)= f(1,0) f1,1) f1,N-1) fM-1,0)f(M-1,1)…f(M-1,N-1)」 等式右边是由定义给出的一幅数字图像。该数组的每一个元素都称为像元、图元或像素。图像和像 素这两个术语在本书后面的讨论中,将用来表示一幅数字图像及其元素。 一幅数字图像在MATLAB中可以很自然地表示成矩阵 f1.11f1.2 = f(W,1)f(w,2).fM,N)」 其中f(1,1)=fO,O),注意,等宽字体用来表示MATLAB的量。很明显,这两种表示是相同的, 只是原点不同。符号P,9)表示位于p行和g列的元素。例如,£(6,2)是指矩阵f中位于第6行 和第2列的元素。一般来说,我们分别用字母M和N来表示知阵中的行与列。一个1×N矩阵称为 一个行向量,而一个M×1矩阵称为一个列向量。一个1×1矩阵是一个标量。 在MATLAB中,矩阵以变量的形式来存储,名称诸如A,a,RGB,real_array等。变量必须 以字母开头,且只能由字母、数字和下划线组成。如在前段中注释的那样,本书中的所有MATLAB 量都用等宽字体来表示。此外,我们使用常见的斜体罗马字母来表示数学表达式,如fx,)。 2.2读取图像 使用函数imread可以将图像读入MATLAB环境,imread的语法为 imread 'filename')