第一章 概述

数字图象处理是一门关于如何用计算机对图象进行处理的学科,本课程主要讲解基本原理和方法,针对计算机系的学生,强调编程实践和建立图象处理应用系统的方法。推荐的教材与图象编程参考书包括:

  1. R.C. Gonzalez, R.E. WoodsDigital Image Processing, (影印) 电子工业出版社& Prentice Hall,2002.
  2. R.C. Gonzalez, R.E. Woods, (阮秋琦、阮宇智等译)数字图像处理,第二版,电子工业出版社& Prentice Hall, 2003.
  3. K. R. Castleman, Digital Image Processing, (影印) 清华大学出版社& Prentice Hall,1998.
  4. K. R. Castleman, (朱志刚、林学闫、石定机等译), 数字图象处理,电子工业出版社& Prentice Hall, 1998.
  5. M. Sonka, V. Hlavac, and R. Boyle, Image processing, analysis, and machine vision, Chapman & Hall Computing, London, 2nd Edition, Brooks/Cole Publishing, 2002. (影印) 图像处理、分析与机器视觉,人民邮电出版社
  6. M. Sonka, V. Hlavac, and R. Boyle, (艾海舟、武勃 等译), 图像处理、分析与机器视觉,人民邮电出版社, 2003.9
  7. 章毓晋,图象工程 上册 图象处理和分析,清华大学出版社, 1999
  8. 崔屹,数字图象处理技术与应用,电子工业出版社,1997.3
  9. 吕风军,数字图象处理编程入门,清华大学出版社,1999.9
  10. 周长发,精通Visual C++图像编程,电子工业出版社,2000.1
  11. 郎锐,数字图像处理学Visual C++实现,北京希望电子出版社,2002.12

 

最近出版的新书:

  1. 章毓晋,图象工程,第二版,清华大学出版社, 2007.5

目录

  1. 什么是数字图象?
  2. 数字图象处理系统的基本组成结构
  3. 数字图象处理的应用
  4. 数字图象处理中的数据结构

作业

1. 什么是数字图象?

数字图象是指由被称作象素的小块区域组成的二维矩阵。对于单色即灰度图象而言,每个象素的亮度用一个数值来表示,通常数值范围在0255之间,即可用一个字节来表示,0表示黑、255表示白,而其它表示灰度。如下图所示:

   

1.1 灰度图象(128x128)及其对应的数值矩阵(仅列出一部分(26x31)

 

彩色图象可以用红、绿、蓝三元组的二维矩阵来表示。通常,三元组的每个数值也是在0255之间,0表示相应的基色在该象素中没有,而255则代表相应的基色在该象素中取得最大值,这种情况下每个象素可用三个字节来表示。

   

1.2 彩色图象(128x128)及其对应的数值矩阵(仅列出一部分(25x31)

    数字图象是对二维连续光函数进行等距离矩形网格采样,再对幅度进行等间隔量化得到的二维数据矩阵。采样是测量每个象素值而量化是将该值数字化的过程。

数字图象在本质上是二维信号,因此信号处理(以一维信号为对象展开的课程)中的基本技术(如FFT)可以用在数字图象处理中。但是,由于数字图象只是一种非常特殊的二维信号,反映场景的视觉属性,只是二维连续信号的非常稀疏的采样,希望从单个或少量采样中获得有意义的描述或特征,无法照搬一维信号处理的方法,需要专门的技术。实际上数字图象处理更多地依赖于具体应用问题,是一系列的特殊技术的汇集,缺乏贯穿始终的严格的理论体系。

数字图象处理是一个多学科交叉的领域,涉及光学、电子学、数学、摄影技术、计算机技术等众多学科,是一个高度综合的技术学科。

解释:

数字图象处理是一门计算机的技术课程,而且是一种非常特殊的专业课程,而非有系统理论体系的基础课程。

本课程只讲述基本原理和一般方法,不涉及具体领域中的特殊方法,如医学图象处理已经成为一个专门的研究领域,有许多特殊的处理方法。

学生在学习时的感觉是内容的系统性不强,涉及的知识面宽但不很深(高级部分除外,如小波变换等),需要出色的综合能力。而在技术上需要很强的程序设计能力,可以说图象处理是门对学生的技术能力即动手能力要求很高的课程。

图象在计算机中表现为二维数据矩阵,难点是矩阵所涉及的各种变换与其在信号原理中的对应关系。图象处理涉及很多变化参数,为了达到好的图象处理效果,参数的选择是关键。为了实现好的图象处理功能,方便的交互手段包括调整参数、图象的显示、存储等是很重要的。

相关资料:数字图象图象处理基础在线讲义http://www.ph.tn.tudelft.nl/Courses/FIP

2.数字图象处理系统的基本组成结构

数字图象处理系统由图象数字化设备、图象处理计算机和图象输出设备组成,如下图所示:

1.3 数字图象处理系统

 图象数字化设备:扫描仪、数码相机、摄象机图象采集卡等

 图象处理计算机:PC、工作站等

 图象输出设备:打印机等

 

3. 数字图象处理的应用

随着微电子与计算机技术的高速发展,图象数字化设备如CCD摄象机、扫描仪、数码相机、图象采集卡的成本大大降低,普通的微机已经可以胜任部分图象处理任务,使得图象处理的应用越来越广泛,可以预见在不久的将来,图象及视频处理的应用将与目前语音处理的应用一样变得日益普及和重要。

图象处理的重要应用包括:

 遥感

 视觉监视、保安

 工业检测与测量

 宇宙探险、军事侦察、高精度制导

 医疗诊断

 通讯

 影视业、娱乐、公众服务

解释:

    数字图象处理是与模式识别与计算机视觉等学科紧密相关的学科方向。数字图象处理通常作为模式识别或计算机视觉系统的预处理部分,用于图象采集、变换、特征提取等前期工作,如图象增强、几何矫正、边缘提取、轮廓跟踪等;而模式识别则重点在于抽取有效特征,分类和识别物体,如指纹识别、签字验证等;计算机视觉的核心任务是景物理解,追求人工的视觉功能,如立体信息的获取,运动分析等。

4.数字图象处理中的数据结构

数字图象处理中常用的数据结构包括矩阵、链码、属性图等;此外还常用分层表示的数据结构,如金字塔和四叉树(pyramids and quadtrees)结构。

数据结构是指数据的组织方式,对算法的选择和其实现的容易程度有明显的影响。数据结构的选择在程序设计中是关键性的步骤。

算法 + 数据结构 = 程序 (Algorithm + Data Structure = Program

逻辑 + 控制 = 算法  Logic + Control = Algorithm

本节是如下资料的摘译:Milan Sonka, Chapter 3, Data Structures in Image Analysis ..\..\download_IPCVPR\DIP of Milan Sonka\datastructureinimageprocessing.htm)。建议读者阅读原文。

4.1 图象数据的表示层次

      图象数据的表示层次反映图象处理的不同阶段,表达图象数据的不同抽象程度。总的来说有如下几个逐级升高的表示层次。

*   象素层图象:由原始数据组成,是象素亮度的整数矩阵;

*   分割图象图象被分割为可能属于同一物体的区域;

*   几何表示:2D3D 形状信息;

*   关系模型: 数据更高层次的抽象,使使用数据更为有效。

4.2 规范的图象数据结构

规范的图象数据结构有矩阵、链码、图、物体属性表、关系数据库 等(matrices,chains, graphs, lists of object properties, relational databases, etc.)。它们不仅用于图象信息的直接表示,而且还是更复杂的图象分层表示方法的基础,如金字塔和四叉树(pyramids and quadtrees)结构。

*   矩阵:低层图象表示的最普通的数据结构,矩阵元素是整型数值;这类图象数据通常是图象获取设备(摄象机、扫描仪等)的直接输出。

*   链码:描述物体的边界,链码中的符号一般对应于图象基元的邻接关系。如下图所示。链码可以用静态数据结构来表示,如1维数组,取其大小为链码的最大可能长度;也可以用动态数据结构来表示,且这样在节省存储空间方面更合适。



*   行程编码:通常用于图象矩阵中符号串的表示。例如 ,传真机就使用这种方式。在二值图象中,行程编码仅记录图象中属于物体的区域,该区域表示成以表为元素的表。图象的每行表示成一个子表,它的第一个元素为行号,然后是两个纵坐标构成的项,第一个为行程的开始的纵坐标(列号),第二个为行程的结束的纵坐标。一行中可以有若干个这样的序列项。如下图所示:

行程编码也可用于含有多个亮度层次图象的表示,这时子表中必须记录序列的亮度值。

*   拓扑数据结构:图象描述成一组元素及其相互关系的图结构。例如,赋值的属性图,区域邻接图。区域邻接图例子如下:



*   关系结构:信息集中在语义上重要的图象组成部分(它们是图象分割的结果)即物体之间的关系上,适合用于高层次的图象理解工作。例如,使用关系结构描述自然场景的示意图(物体及其关系属性表)如下:



4.3分层数据结构

分层数据结构将图象描述成若干不同粒度的层次,使算法可以根据需要将处理控制在较小的数据量上;只有必要时,处理才会在最细的数据分辨率上进行。两种典型的分层表示数据结构是金字塔和四叉树(pyramids and quadtrees)结构。

*  金字塔(pyramids

     图象M-pyramid金字塔结构是一个图象序列{ML, ML-1, ..., M0} ,其中ML 是具有原图分辨率的图象,即原图本身,然后依次降低一倍分辨率得到该图象序列。当原图的分辨率是2的整数时,M0 则仅对应于一个象素。当需要对图象的不同分辨率同时进行处理时,可以采用这种数据结构。分辨率每降低一层,数据量则减少4倍,因而处理速度差不多提高4倍。

M-pyramid金字塔结构存储所有图象矩阵需要的象素个数为:

   一般而言,同时使用几个分辨率层次比仅使用单个层次优越。这些图象可以表示成树状金字塔结构: T-pyramid. T-pyramid是树结构,每个结点有4个子结点,如下图所示:



    T-pyramid金字塔结构的存储表示与T-pyramid相似,树的弧不必存储,这是因为由于其结构的规范性树的子结点和父结点的地址都很容易计算出来。

*  四叉树(Quadtrees

    四叉树是T-pyramids的改进,除叶子结点外每个结点有4个子结点(西北NW: north-western, 东北NE: north-eastern, 西南SW: south-western, 西南SE: south-eastern).T-pyramids一样,在每个层次图象被分解4个象限,但无须保留所有的叶结点。如果父结点有4个与它的值(如,亮度)一样的子结点,则无须保留这些子结点。如下图所示。




分层图象表示的缺欠是:

*  依赖于物体的位置、方向和相对大小;

* 两个仅有微小差别的相似图象可能会具有非常不同的金字塔结构或四叉树结构;

* 甚至当两个图象描述的是完全相同而只是略微移动了的景物时,可能会产生完全不同的表示。

说明:有关链接参考资料的自学问题

课件中涉及相当多的通过链接方式访问的参考资料(如htm/html网页、pdfword文档,等等。),主要的目的是提供丰富的素材,便于不同程度的读者自由学习,不是基本要求,感兴趣的读者可以参考。这种内容是传统教材无法实现的,是电子课件的主要特点之一。学生如果能够充分发挥主观能动性,将会突破课件自身内容局限性,对课程的学习十分有益。  

参考文献

Milan Sonka, Chapter 3, Data Structures in Image Analysis ..\..\download_IPCVPR\DIP of Milan Sonka\datastructureinimageprocessing.htm)。

--------------------------------------------------------------------------------

作业

1.    编制读入并显示bmp格式的程序,用鼠标选择区域,将其象素数据写入数组,并以文本文件txt输出。

(有关位图(bmp)的格式请参考:第一章,Windows位图和调色板,“数字图象处理编程入门”,吕风军,清华大学出版社,1999.9位图格式说明..\Readings\chapter01\bitmapformat.doc


返回主目录 返回本章目录

清华大学计算机系 艾海舟

最近修改时间:2000110