第1篇 MATLAB入门篇 2
第1章 MATLAB概述 2
1.1 MATLAB的发展历程 2
1.2 MATLAB的优势与特点 2
1.3 MATLAB系统的构成 4
1.4 MATLAB桌面操作环境 5
1.4.1 启动和退出 5
1.4.2 主菜单及功能 6
1.4.3 命令窗口 9
1.4.4 工作空间 11
1.4.5 M文件编辑/调试器 13
1.4.6 Figure窗口 14
1.4.7 文件管理 16
1.4.8 使用帮助 16
1.5 MATLAB的工具箱 17
1.6 小结 18
第2章 MATLAB基本运算 19
2.1 MATLAB数据类型 19
2.2 数组及其运算 21
2.2.1 数组的创建 21
2.2.2 数组的运算 22
2.3 矩阵及其运算 24
2.3.1 矩阵的创建 24
2.3.2 矩阵的运算 25
2.4 复数及其运算 27
2.4.1 复数的表示 27
2.4.2 复数的绘图 28
2.4.3 复数的操作函数 29
2.5 符号运算 30
2.5.1 符号运算概述 30
2.5.2 常用的符号运算 32
2.6 关系运算和逻辑运算 34
2.7 小结 34
第3章 MATLAB程序设计 35
3.1 程序设计概述 35
3.2 程序设计的基本原则 36
3.3 M文件 37
3.4 程序流程控制 39
3.5 函数及调用 42
3.5.1 函数类型 42
3.5.2 函数参数传递 45
3.6 函数句柄 49
3.7 程序调试 51
3.7.1 常见程序错误 51
3.7.2 调试方法 53
3.7.2 调试工具 54
3.7.3 M文件分析工具 57
3.7.4 Profiler分析工具 58
3.8 程序设计技巧 59
3.8.1 嵌套计算 60
3.8.2 循环计算 61
3.8.3 使用异常处理机制 61
3.8.4 使用全局变量 63
3.8.5 通过varargin传递参数 65
3.9 小结 66
第4章 MATLAB图形绘制 67
4.1 MATLAB中绘图的基本步骤 67
4.2 在工作空间直接绘图 67
4.3 利用绘图函数绘图 68
4.3.1 二维图形 69
4.3.2 三维图形 69
4.4 特殊图形绘制 71
4.4.1 直方图 72
4.4.2 柱状图 73
4.4.3 面积图 74
4.4.4 饼图 75
4.4.5 火柴杆图 76
4.4.6 阶梯图 77
4.4.7 等高线图 78
4.4.8 向量图 79
4.4.9 圆柱体图 81
4.4.10 球面图 82
4.5 图形修饰 83
4.6 小结 85
第5章 MATLAB图像处理基础 86
5.1 MATLAB图像文件的格式 86
5.2 图像类型 86
5.2.1 索引图像 87
5.2.2 灰度图像 88
5.2.3 RGB图像 89
5.2.4 二值图像 90
5.2.5 图像类型转换 91
5.2.6 图像序列 92
5.3 MATLAB中的颜色模型 92
5.3.1 颜色模型的分类 93
5.3.2 颜色模型的转换 94
5.4 图像处理基本函数 95
5.4.1 图像读入和显示 96
5.4.2 图像写回 97
5.4.3 获取图像信息 98
5.5 标准图像显示技术 99
5.5.1 imshow函数 100
5.5.2 显示灰度图像 100
5.5.3 显示二值图像 101
5.5.4 显示索引图像 102
5.5.5 显示真彩图像 102
5.5.6 显示图形文件中的图像 102
5.6 特殊图像显示技术 103
5.6.1 添加颜色条 103
5.6.2 显示多帧图像阵列 103
5.6.3 图像上的区域缩放 103
5.6.4 纹理映射 104
5.6.5 同时显示多幅图像 104
5.7 小结 104
第2篇 图像处理提高篇第6章 图像的运算 106
6.1 图像的代数运算 106
6.1.1 图像的加运算 106
6.1.2 图像的减运算 107
6.1.3 图像的乘运算 108
6.1.4 图像的除运算 108
6.1.5 图像的一般线性运算 109
6.2 图像的逻辑运算 110
6.3 图像的块和邻域处理 111
6.3.1 滑动邻域操作 111
6.3.2 分离块操作 112
6.3.3 使用列处理加快速度 114
6.4 图像的几何运算 116
6.4.1 图像的插值 116
6.4.2 图像的缩放 117
6.4.3 图像的旋转 117
6.4.4 图像的裁剪 119
6.4.5 图像的一般线性变换 120
6.5 小结 121
第7章 图像的变换 122
7.1 傅里叶变换 122
7.1.1 傅里叶变换的定义 122
7.1.2 傅里叶变换的快速实现 124
7.1.3 傅里叶变换的应用 126
7.2 离散余弦变换(DCT) 128
7.2.1 二维离散余弦变换的定义 128
7.2.2 DCT变换矩阵 129
7.2.3 DCT的实现和图像压缩 129
7.3 Radon变换 131
7.3.1 Radon变换的定义 131
7.3.2 使用Radon变换检测直线 133
7.3.3 逆Radon变换 134
7.4 小结 135
第8章 图像的增强 136
8.1 灰度变换增强 136
8.1.1 图像直方图的含义 136
8.1.2 直方图均衡化 137
8.1.3 灰度值调整到指定范围 138
8.1.4 有限对比自适应直方图均衡化 140
8.1.5 使用去相关进行色度拉伸 141
8.2 线性滤波器设计 142
8.2.1 卷积 142
8.2.2 相关 143
8.2.3 imfilter函数用于滤波 144
8.2.4 使用预定义的滤波器对图像滤波 148
8.3 空间域滤波增强 149
8.3.1 图像加入噪声 149
8.3.2 中值滤波器 150
8.3.3 自适应滤波器 151
8.4 频域滤波增强 152
8.4.1 频率变换方法 152
8.4.2 频率抽样法 153
8.4.3 窗函数法 154
8.4.4 创建所需的频率响应矩阵 156
8.4.5 计算滤波器的频率响应 157
8.5 小结 157
第9章 图像的分析 158
9.1 像素值和图像统计量 158
9.1.1 获取像素值 158
9.1.2 创建图像强度曲线 159
9.1.3 显示图像数据的等值线图 161
9.1.4 图像的统计信息 162
9.1.5 图像的局部属性 163
9.2 图像的边界分析 166
9.2.1 边缘检测 166
9.2.2 边界跟踪 168
9.2.3 使用hough变换检测图像中的直线 171
9.3 四叉树分解 172
9.4 图像的纹理分析 174
9.4.1 纹理分析的函数 174
9.4.2 使用灰度共生矩阵 176
9.5 小结 178
第10章 图像的复原 179
10.1 图像的退化 179
10.1.1 图像退化的原因 179
10.1.2 图像退化的数学模型 179
10.1.3 图像的噪声 181
10.2 图像复原的模型和方法分类 182
10.2.1 图像的复原模型 183
10.2.2 无约束复原方法 183
10.2.3 有约束复原方法 184
10.2.4 复原方法的评估 184
10.3 图像的复原方法 184
10.3.1 维纳滤波 185
10.3.2 规则化滤波 186
10.3.3 Lucy-Richardson滤波 188
10.3.4 盲反卷积 189
10.4 点扩散函数和光学转换函数的互相转化 190
10.5 小结 191
第11章 图像的形态学操作 192
11.1 膨胀和腐蚀 192
11.1.1 理解膨胀和腐蚀 192
11.1.2 处理图像边界的像素 193
11.1.3 理解结构元素 193
11.1.4 图像膨胀 197
11.1.5 图像腐蚀 199
11.1.6 膨胀和腐蚀组合 201
11.1.7 以膨胀和腐蚀为基础的其他操作 203
11.2 数学形态学重建 207
11.2.1 理解标记图像和掩膜图像 207
11.2.2 像素连通性 208
11.2.3 填充操作 210
11.2.4 寻找最大值和最小值 211
11.3 距离变换 217
11.4 对象的标记和测量 220
11.4.1 连通区域的标记 221
11.4.2 选择二值图像中的对象 222
11.4.3 计算二值图像中前景的面积 223
11.4.4 计算二值图像的欧拉数 224
11.5 查表操作 224
11.5.1 创建一个查询表 224
11.5.2 使用查询表 225
11.6 小结 225
第12章 彩色图像处理 226
12.1 减少彩色图像中的色彩数 226
12.1.1 使用色彩近似 226
12.1.2 使用imapprox函数 230
12.1.3 抖动 231
12.2 色彩空间转换 231
12.3 小结 236
第3篇 综合实战篇 238
第13章 MATLAB图像重构实战 238
第14章 MATLAB图像增强实战 243
14.1 对比度增强 243
14.2 纠正不均匀的照明 250
14.3 多分辨率彩色图像增强 254
14.4 小结 259
第15章 MATLAB图像配准实战 260
第16章 MATLAB图像去模糊实战 264
第17章 MATLAB图像分割实战 272
17.1 基于L*a*b*空间的色彩分割 272
17.2 利用图像分割来检测细胞 279
17.3 检测交通视频中的汽车目标 282
17.4 在多分辨率图像中检测植被 285
17.5 分水岭分割算法 289
17.6 使用纹理滤波器分割图像 295
17.7 小结 298
第18章 MATLAB图像特征提取实战 299
18.1 计算运动中单摆的长度 299
18.2 粒度测定 302
18.3 确定圆形目标 305
18.4 测量角度 307
18.5 灰度图像的属性测量 310
18.6 磁带滚动轴半径的测量 313
18.7 小结 316
附录 MATLAB图像处理工具箱函数详解 317
第2章 MATLAB基本运算 19
例2-1 元胞数组创建与显示实例。 20
例2-2 数组创建实例。 22
例2-3 数组运算。 23
例2-4 矩阵创建实例。 24
例2-5 特殊矩阵生成函数使用实例。 25
例2-6 矩阵基本运算实例。 26
例2-7 矩阵函数运算实例。 26
例2-8 矩阵分解运算函数使用实例。 26
例2-9 复数构造实例。 27
例2-10 复数矩阵构造实例。 28
例2-11 复数函数绘图实例。 29
例2-12 符号表达式创建实例。 31
例2-13 微积分的符号运算实例。 33
例2-14 常微分方程符号运算实例。 33
第3章 MATLAB程序设计 35
例3-1 M文件创建实例。 38
例3-2 return语句使用实例。 41
例3-3 匿名函数创建实例。 43
例3-4 显示函数输入和输出参数的数目实例。 46
例3-5 可变数目的参数传递实例。 47
例3-6 函数内部的输入参数修改实例。 48
例3-7 函数参数传递实例。 48
例3-8 全局变量使用实例。 49
例3-9 函数句柄创建和调用实例。 50
例3-10 处理函数句柄的函数使用实例。 50
例3-11 嵌套计算与直接求值的比较实例。 60
例3-12 嵌套计算与非嵌套计算的比较实例。 60
例3-13 异常处理机制使用实例。 62
例3-14 nargin函数应用实例。 63
例3-15 全局变量使用实例。 64
例3-16 通过varargin传递参数的实例。 65
第4章 MATLAB图形绘制 67
例4-1 工作空间直接作图法使用实例。 68
例4-2 二维图形绘制实例。 69
例4-3 三维曲线绘制函数使用实例。 70
例4-4 三维网格曲面图绘制实例。 70
例4-5 阴影曲面绘制函数surf使用实例。 71
例4-6 直方图绘制函数hist使用实例。 72
例4-7 玫瑰图绘制函数rose使用实例。 72
例4-8 柱状图绘制函数bar使用实例。 73
例4-9 三维柱状图函数使用实例。 73
例4-10 面积图绘制函数area使用实例。 74
例4-11 饼图绘制函数pie使用实例。 75
例4-12 绘制饼图应用实例。 75
例4-13 火柴杆图绘制函数stem使用实例。 76
例4-14 stem3函数绘图应用实例。 76
例4-15 阶梯图绘制函数stairs使用实例。 77
例4-16 等高线图绘制函数contour使用实例。 78
例4-17 三维等高线绘制应用实例。 78
例4-18 罗盘图绘制函数compass使用实例。 79
例4-19 羽毛图绘制函数feather使用实例。 80
例4-20 向量场图绘制函数quiver使用实例。 81
例4-21 圆柱体绘制函数cylinder使用实例。 82
例4-22 球面绘制函数sphere使用实例。 82
例4-23 绘图命令使用实例。 84
第5章 MATLAB图像处理基础 86
例5-1 索引图像及颜色表说明实例。 88
例5-2 灰度图像显示。 88
例5-3 RGB图像显示。 90
例5-4 gray2ind函数应用实例。 92
例5-5 rgb2hsv函数应用实例。 95
例5-6 图像读入及显示应用实例。 96
例5-7 图像写回命令应用实例。 97
例5-8 图像信息查询函数应用实例一。 99
例5-9 图像信息查询函数应用实例二。 99
例5-10 显示灰度图像的函数应用实例。 101
例5-11 二值图像显示应用实例。 101
第6章 图像的运算 106
例6-1 图像的加运算。 106
例6-2 图像的减运算。 107
例6-3 图像的乘运算。 108
例6-4 图像的除运算。 109
例6-5 图像的一般线性运算。 109
例6-6 图像的逻辑运算。 110
例6-7 滑动邻域操作。 112
例6-8 分离块操作。 114
例6-9 列处理操作。 115
例6-10 图像的插值。 116
例6-11 图像的缩放。 117
例6-12 图像的旋转。 118
例6-13 图像的交互式裁剪。 119
例6-14 图像的参数式裁剪。 119
例6-15 图像的一般线性变换。 120
第7章 图像的变换 122
例7-1 二维傅里叶变换函数的使用。 125
例7-2 高斯低通滤波器的频率响应。 126
例7-3 傅里叶变换应用于快速卷积。 127
例7-4 确定图像特征的位置。 127
例7-5 离散余弦变换和逆变换。 129
例7-6 DCT用于图像压缩示例。 130
例7-7 两个方向的Radon变换。 132
例7-8 在一幅图像中显示不同方向的Radon变换。 133
例7-9 使用Radon变换来检测直线。 133
例7-10 逆Radon变换重建图像。 135
第8章 图像的增强 136
例8-1 直方图的显示。 136
例8-2 直方图均衡化。 137
例8-3 调整灰度范围。 138
例8-4 imadjust函数用于展现图像的细节。 139
例8-5 用stretchlim函数确定映射的灰度。 139
例8-6 gamma校正。 140
例8-7 有限对比自适应直方图均衡化。 141
例8-8 简单的去相关拉伸操作。 141
例8-9 均值滤波。 145
例8-10 不同的填充选项对比。 147
例8-11 对真彩色图像滤波。 147
例8-12 不同的滤波器对图像进行滤波。 148
例8-13 在图像中加入不同的噪声。 150
例8-14 中值滤波和均值滤波对比。 151
例8-15 wiener2函数自适应滤波。 152
例8-16 一维滤波器转化为二维滤波器。 153
例8-17 用频率抽样法设计二维带通滤波器。 153
例8-18 fwind1函数产生二维滤波器。 154
例8-19 fwind2函数产生二维滤波器。 155
例8-20 理想低通圆形滤波器。 156
例8-21 利用freqz2函数计算频率响应。 157
第9章 图像的分析 158
例9-1 返回指定点坐标的像素值。 158
例9-2 交互式获取像素值。 159
例9-3 返回指定坐标的图像强度曲线。 160
例9-4 交互式获取图像像素强度曲线。 160
例9-5 真彩色图像的像素强度曲线。 161
例9-6 显示等值线。 162
例9-7 计算图像的统计信息。 163
例9-8 求图像区域的质心。 165
例9-9 边缘检测。 168
例9-10 利用bwtraceboundary函数跟踪边界。 169
例9-11 利用bwboundaries函数跟踪外部边界。 170
例9-12 利用bwboundaries函数检测外部边界和内部边界。 170
例9-13 利用hough变换检测图像中的直线。 171
例9-14 矩阵四叉树分解。 173
例9-15 图像的四叉树分解。 173
例9-16 计算图像的局部最大差值。 175
例9-17 计算图像的局部标准差。 175
例9-18 计算图像的局部熵。 176
例9-19 计算矩阵的灰度共生矩阵。 177
例9-20 计算灰度共生矩阵的统计量。 178
第10章 图像的复原 179
例10-1 图像的模糊。 180
例10-2 维纳滤波复原图像。 185
例10-3 规则化复原图像。 187
例10-4 Lucy-Richardson方法复原图像。 188
例10-5 盲反卷积恢复图像。 190
例10-6 点扩散函数和光学转换函数的互相转化。 191
第11章 图像的形态学操作 192
例11-1 二值图像的膨胀。 198
例11-2 灰度图像的膨胀。 198
例11-3 灰度图像的膨胀(图像先取反后膨胀)。 199
例11-4 二值图像的腐蚀。 200
例11-5 灰度图像的腐蚀。 200
例11-6 二值图像的开运算。 201
例11-7 利用imopen函数进行开运算。 202
例11-8 二值图像的关运算。 202
例11-9 图像的骨架提取。 203
例11-10 图像的边缘检测。 204
例11-11 击中击不中操作。 205
例11-12 对图像进行top-hat滤波。 206
例11-13 使用top-hat和bottom-hat滤波对图像进行增强。 206
例11-14 对图像进行孔洞填充。 211
例11-15 确定图像的局部极小值。 214
例11-16 计算简单图像的欧氏距离。 218
例11-17 二维情况下使用不同的距离变换函数求取距离 219
例11-18 三维情况下使用不同的距离变换函数求距离。 220
例11-19 对象的选择。 223
例11-20 计算前景面积增加的比例。 223
例11-21 计算二值图像的欧拉数。 224
例11-22 使用查询表操作。 225
第12章 彩色图像处理 226
例12-1 颜色查找表映射。 230
例12-2 使用imapprox函数减少色彩数。 230
例12-3 使用抖动创建图像。 231
例12-4 从NTSC空间转换到RGB空间。 233
例12-5 RGB空间和YCbCr空间之间的相互转化。 234
例12-6 makecform函数使用方法。 236
第13章 MATLAB图像重构实战 238
例13-1 图像的重构。 238
第14章 MATLAB图像增强实战 243
例14-1 利用最大熵原理进行图像对比度增强。 244
例14-2 对比度增强的主程序。 245
例14-3 纠正不均匀的照明。 250
例14-4 对多分辨率彩色图像进行增强。 254
第15章 MATLAB图像配准实战 260
例15-1 图像配准。 260
第16章 MATLAB图像去模糊实战 264
例16-1 图像去模糊。 264
第17章 MATLAB图像分割实战 272
例17-1 基于L*a*b*空间的色彩分割。 272
例17-2 K均值用于图像分割。 276
例17-3 图像分割用于检测细胞。 279
例17-4 检测运动的汽车。 282
例17-5 在多分辨率图像中检测植被。 286
例17-6 标记分水岭分割算法。 290
例17-7 利用纹理滤波器进行图像分割。 295
第18章 MATLAB图像特征提取实战 299
例18-1 计算运动中的摆长。 299
例18-2 粒度测定。 302
例18-3 确定圆形目标。 305
例18-4 测量两条直线的夹角。 307
例18-5 灰度图像的属性计算。 311
例18-6 计算磁带滚动轴的半径。 313