本书系统地介绍了图像处理与识别的基本原理、典型方法和实用技术。全书共分12章,第1章~第6章是图像处理与识别的基础内容,包括图像科学综述、MATLAB语言图像编程、图像增强、图像分割、图像特征提取和图像识别;第7章~第10章是图像处理与识别的工程实例,涵盖了医学图像处理、文字识别和自导引小车路径识别等应用实例,并结合理论算法,提供了大量MATLAB代码程序,以帮助读者掌握如何使用MATLAB语言快速进行算法的仿真、调试和估计等方法。第11章~第12章,是两个综合性较强的实例,分别是Visual C++实现的基于神经网络的文字识别系统和车牌定位系统。
本书附带的光盘给出了各个章节列举的实例的源代码,同时赠送了28个常用数字图像处理算法的Visual C++代码实现。
本书讲解深入浅出,实例程序丰富,注重理论与实践相结合。本书可作为计算机应用、自动化、图像处理与模式识别、机电一体化专业的高年级本科生或研究生的参考书,也可供从事图像处理与识别的研究人员和工程技术人员阅读参考。
第1章 图像科学综述 1
1.1 引 言 1
1.1.1 图像处理与识别技术概述 1
1.1.2 图像处理与识别技术的应用领域 2
1.1.3 图像处理与识别的技术内容 3
1.2 图像处理系统的基本构成 4
1.2.1 计算机图像处理系统的分类 4
1.2.2 微机图像处理系统的基本构成 5
1.3 图像的数字化与表示 6
1.3.1 图像的数字化 7
1.3.2 图像的存储 8
1.3.3 数字图像的表示 8
1.4 数字图像处理的基本运算 9
1.4.1 数字图像处理的基本过程 9
1.4.2 基本运算形式 10
1.5 图像处理与识别及图像理解所研究的内容 12
1.5.1 图像处理技术 12
1.5.2 图像识别技术 13
1.5.3 图像理解 15
1.6 图像处理与识别及图像理解的关系 17
1.6.1 图像处理 17
1.6.2 图像理解 18
1.6.3 图像识别与图像处理及图像理解的关系 19
1.7 计算机视觉 19
1.7.1 计算机视觉研究的内容 20
1.7.2 计算机视觉发展的现状 21
1.7.3 计算机视觉面临的困难 21
第2章 MATLAB语言图像编程 23
2.1 MATLAB基本操作 23
2.1.1 操作界面的默认外形 23
2.1.2 通用操作界面 24
2.2 MATLAB编程基础 24
2.2.1 变量 24
2.2.2 数据类型 25
2.2.3 基本赋值语句 26
2.2.4 工作空间的管理 26
2.3 MATLAB运算符 27
2.3.1 算术运算符 27
2.3.2 关系运算符 28
2.3.3 逻辑运算符 29
2.4 控制语句 29
2.4.1 循环控制语句 30
2.4.2 条件转移语句 31
2.4.3 开关控制语句 31
2.5 M脚本文件和函数文件 33
2.5.1 M文本编辑器 33
2.5.2 M函数文件 34
2.5.3 文件的一般结构 34
2.6 MATLAB图像处理初步 35
2.6.1 图像处理基本操作 35
2.6.2 高级图像处理初步 37
2.7 图像格式与MATLAB图像类型 39
2.7.1 常用图像格式 39
2.7.2 MATLAB图像类型 41
2.7.3 图像类型转换 44
2.8 MATLAB图像显示 46
2.8.1 MATLAB图像的读写和显示 46
2.8.2 二进制图像的显示方法 48
2.8.3 灰度图像显示方法 49
2.8.4 索引图像的显示 50
2.8.5 RGB图像的显示方法 50
2.8.6 多幅图像显示 50
第3章 图像的增强 52
3.1 图像变换增强 52
3.1.1 概述 52
3.1.2 傅立叶变换 52
3.1.3 离散余弦变换 56
3.2 灰度变换增强 58
3.2.1 线性灰度变换 58
3.2.2 分段线性变换 59
3.2.3 非线性灰度变换 60
3.3 直方图变换增强 62
3.3.1 灰度直方图 62
3.3.2 直方图均匀化 63
3.3.3 直方图均匀化的计算步骤及实例 64
3.4 空间域滤波增强 67
3.4.1 平滑滤波器 67
3.4.2 空间域图像平滑实例 70
3.4.3 空间域图像锐化 73
3.5 频域增强 78
3.5.1 频域低通滤波 78
3.5.2 频域高通滤波 81
第4章 图像分割 84
4.1 图像分割的基本概念 84
4.1.1 图像分割定义 84
4.1.2 图像分割算法分类 85
4.2 边缘检测 85
4.2.1 边缘检测概述 85
4.2.2 边缘检测梯度算法 86
4.2.3 拉普拉斯(Laplacian)算子 89
4.2.4 LoG(Laplacian-Gauss)算子 90
4.2.5 坎尼(Canny)算子 92
4.3 灰度阈值分割 93
4.3.1 阈值分割介绍 93
4.3.2 全局阈值 95
4.3.3 动态阈值 98
4.4 区域分割 101
4.4.1 区域生长的原理和步骤 101
4.4.2 生长准则和过程 102
4.4.3 分裂合并 104
4.5 彩色分割 105
4.5.1 分割所用的彩色空间 106
4.5.2 分割策略 108
4.6 特殊方法的图像分割 111
4.6.1 基于数学形态学的分割技术 111
4.6.2 借助于统计模式识别方法的分割技术 118
第5章 特征提取 119
5.1 基本概念 119
5.1.1 问题的提出 119
5.1.2 一些基本概念 119
5.2 纹理特征提取 121
5.2.1 直方图统计特征 121
5.2.2 图像的自相关函数 124
5.2.3 灰度共生矩阵 124
5.2.4 灰度-梯度共生矩阵 131
5.2.5 基于变换的特征 133
5.3 形状和结构特征提取 135
5.3.1 区域内部的数字特征 135
5.3.2 基于边界的形状特征 139
5.4 颜色特征提取 143
第6章 图像识别 144
6.1 图像识别概述 144
6.2 统计模式的识别方法 145
6.2.1 决策理论方法 145
6.2.2 统计分类法 150
6.3 结构语句的识别方法 153
6.3.1 概述 153
6.3.2 结构模式识别系统 156
6.3.3 图像基元的选择与抽取 157
6.3.4 图像描述语言. 图像描述文法 158
6.4 模糊集识别法 162
6.4.1 概述 162
6.4.2 模糊集理论基础 163
6.4.3 模糊关系 165
6.4.4 最大隶属原则识别方法 167
6.4.5 择近原则识别方法 167
6.4.6 模糊聚类识别方法 168
6.5 神经网络识别法 173
6.5.1 人工神经网络概述 173
6.5.2 与传统分类器的对比 173
6.5.3 神经元模型 175
6.5.4 BP神经网络分类器 176
第7章 医学图像处理 180
7.1 细胞边缘的精确检测 180
7.1.1 概述 180
7.1.2 细胞边缘的精确检测 181
7.1.3 算法总结 187
7.2 癌细胞识别系统 187
7.2.1 概述 187
7.2.2 系统概况 188
7.2.3 阈值分割 189
7.2.4 癌细胞识别 189
第8章 文字图像识别 196
8.1 文字图像识别简介 196
8.1.1 文字识别系统的原理及组成 196
8.1.2 文字识别的方法 197
8.2 图书馆中图书索书号的自动识别 197
8.2.1 索书号自动识别系统概述 198
8.2.2 索书号文字图像分割 198
8.2.3 文字图像二值化 206
8.2.4 单个字符的切分 206
8.2.5 文字识别 215
8.3 汽车牌照的自动识别 226
8.3.1 车辆管理系统组成 226
8.3.2 汽车牌照自动识别 227
8.4 商标的自动翻译 230
8.4.1 商标自动翻译系统的组成 230
8.4.2 商标文字图像的分割 230
第9章 AGV视觉导引车路径识别 234
9.1 AGV及其视觉导引技术简介 234
9.1.1 AGV概述 234
9.1.2 AGV的发展及其应用 234
9.1.3 AGV导引技术简介 235
9.1.4 视觉导引技术 236
9.2 路径摄像系统 237
9.2.1 AGV视觉导引的硬件体系结构 237
9.2.2 CCD摄像系统设计 237
9.3 路径图像识别 240
9.3.1 路径图像的特征 240
9.3.2 灰度图像的路径识别 241
9.3.3 彩色图像的路径识别 243
9.3.4 路径定位与方向偏差测量 249
第10章 图像技术在自动检测中的应用 254
10.1 机械零件尺寸的自动检测 254
10.2 机械振动幅值特征的图像测量 256
10.2.1 CCD线性时间积分成像原理 256
10.2.2 测量系统的组成 256
10.2.3 被测点时间平均成像与振幅特征之间的关系 257
10.3 钢球表面缺陷的自动检测与识别 258
10.3.1 系统的组成 258
10.3.2 图像预处理 259
10.3.3 缺陷特征提取 261
10.3.4 缺陷识别 262
第11章 基于神经网络的文字识别系统 264
11.1 系统简介 264
11.2 系统的基本技术要求 264
11.3 系统中的关键技术 264
11.4 系统的软硬件平台 264
11.4.1 系统的硬件平台 264
11.4.2 系统的软件平台 265
11.5 系统实现 265
11.5.1 系统流程图 265
11.5.2 程序实现 265
11.5.3 程序总体编程框架 379
11.5.4 程序使用说明. 测试及注意事项 381
11.6 本章小结 384
第12章 车牌定位系统 385
12.1 系统简介 385
12.2 系统基本技术要求 385
12.3 系统中用到的关键技术 385
12.4 系统软硬件平台 385
12.4.1 系统的硬件平台 385
12.4.2 系统的软件平台 386
12.5 系统实现 386
12.5.1 系统流程图 386
12.5.2 程序实现 387
12.5.3 程序效果测试 413
12.6 本章小结 420
随着信息技术的发展, 图像处理与识别技术在医学. 工业自动化以及旅游文化等各个领域得到了日益广泛的应用. 目前大部分的高等院校计算机以及相关专业都开设了图像处理方面的课程. 同时很多科研单位. 企业也在从事相关的应用研究与开发.
虽然已出版的关于数字图像处理的书籍比较多, 大都介绍基本的数字图像处理算法, 要把这些具体的技术应用到实际的工程中, 还需要很多复杂的步骤和设计. 本书系统介绍了图像处理与识别的基本原理和典型方法, 并结合工程实践, 选取了4个不同领域的工程实例进行了系统的介绍.
针对相关知识点和工程实例, 本书提供了丰富的MATLAB调试代码, 以便指导读者在实际应用中, 学会通过MATLAB图像处理工具快速. 方便地调试算法, 缩短开发周期. 与Visual C++等编程语言相比, MATLAB语言代码简明扼要, 更加贴近理论算法, 便于读者对算法和代码实现的全面理解和掌握.
本书的特色如下.
·对图像处理与识别从理论分析和实际应用两方面进行了系统的介绍.
·介绍用MATLAB编程语言对图像处理和识别的理论算法进行仿真. 分析和估计的详细方法和步骤, 同时给出了大量的MATLAB代码供读者学习和参考.
·结合实例, 包括医学图像处理. 文字识别和AGV自动导引小车路径识别等, 介绍了如何在实际应用中进行图像的处理和识别.
·给出了两个综合性较强的实例, 实现了“基于神经网络的文字识别系统”和“车牌定位系统”.
·本书附带的光盘中给出了各个章节列举的实例的源代码, 同时赠送了28个常用数字图像处理算法的VisualC++代码实现.
本书共有12章, 内容简介如下.
第1章, 综述图像处理与识别的基本原理与概念. 系统组成. 数学描述. 相关应用领域及展望.
第2章, 介绍MATLAB语言的基本操作. 编程知识以及如何使用MATLAB语言进行简单的图像处理. 图像类型转换和图像显示等.
第3章, 介绍图像增强的一些基本方法, 包括图像变换增强. 灰度变换增强. 直方图变换增强. 空间域滤波增强和频域处理等.
第4章, 在简要介绍图像分割的基本概念的基础上, 重点分析了分割方法, 包括边缘检测分割技术. 灰度阈值分割技术. 区域生长分割技术. 彩色分割技术和特殊理论的分割.
第5章, 介绍如何用数学表达式描述某个具体的图像与其他图像的区别, 主要包括形状特征. 纹理特征和颜色特征.
第6章, 介绍图像识别的基本概念, 重点阐述了统计模式识别方法. 结构语句识别方法. 模糊集理论识别方法和神经网络识别方法.
第7章, 通过实例介绍了细胞边缘的精确检测方法, 以及癌细胞分析与识别的图像处理方法.
第8章, 介绍与文字图像识别相关的几个热门研究领域, 主要包括数字图书馆中图书封面的文字图像识别, 交通领域中车辆管理的汽车牌照自动识别技术, 以及旅游文化领域中商标. 交通路标的自动翻译等.
第9章, 介绍在自导引小车(AGV)中采用图像处理与识别技术进行路径自动识别的方法.
第10章, 介绍图像技术在工业自动检测中的应用, 主要包括机械零件尺寸测量. 机械振动测量和表面机械加工质量的自动检测.
第11章, 介绍一个完整的基于神经网络的文字识别系统, 其中综合了图像增强. 图像分割. 特征提取和神经网络等各种高级技术.
第12章, 介绍车牌定位系统, 它是车牌自动识别系统中的一个重要部分, 只有正确地获取整个图像中的车牌部分, 才能正确的对车牌进行文字识别. 结合第11章介绍的识别方面的程序, 能够实现对车牌文字的识别.
本书主要由胡小锋. 赵辉编写, 参加写作的人员还有陈超. 周勇. 于建国. 张进. 刘海英. 胡标. 李功. 胡雷和付冰等. 在编写过程中, 我们力求精益求精, 但难免存在一些不足之处, 如果读者使用本书时遇到问题, 可以发E-mail到fomay@zj. com和tangqian@ptpress. com. cn与我们联系.
编者
2004年8月