第一篇 数字图像处理编程基础 1
第1章 Visual C++图像处理基础 1
1.1 Visual C++概述 1
1.2 数字图像处理的研究内容及应用领域 2
1.3 颜色模式和调色板 4
1.3.1 颜色模式 4
1.3.2 Windows调色板 6
1.4 数字图像文件格式 11
1.4.1 BMP文件格式 11
1.4.2 其他文件格式 13
1.5 使用Visual C++处理数字图像的基本方法 18
1.5.1 使用GDI+处理数字图像 18
1.5.2 使用DIB处理数字图像 22
1.5.3 使用自定义类CDib处理数字图像 26
1.6 综合实例——图像浏览器 37
1.7 实践拓展 42
第二篇 数字图像处理核心技术 45
第2章 图像几何变换 45
2.1 图像位置变换 45
2.1.1 图像平移 46
2.1.2 图像旋转 49
2.1.3 图像镜像 54
2.1.4 图像转置 58
2.2 图像尺度变换 60
2.2.1 图像缩放 60
2.2.2 插值算法 64
2.3 综合实例——魔镜 70
2.4 实践拓展 83
第3章 图像正交变换 85
3.1 基本正交变换 85
3.1.1 离散傅里叶变换 85
3.1.2 离散余弦变换 95
3.1.3 离散沃尔什变换 99
3.2 特征变换 105
3.2.1 K-L变换 105
3.2.2 SVD变换 110
3.2.3 小波变换 115
3.3 综合实例——特征提取 123
3.4 实践拓展 130
第4章 图像增强 132
4.1 灰度变换增强 132
4.1.1 线性灰度增强 132
4.1.2 分段线性灰度增强 134
4.1.3 非线性灰度增强 136
4.2 直方图增强 138
4.2.1 直方图统计 138
4.2.2 直方图均衡化 140
4.2.3 直方图规定化 142
4.3 图像平滑 145
4.3.1 邻域平均法 145
4.3.2 加权平均法 147
4.3.3 选择式掩膜平滑 149
4.3.4 中值滤波法 154
4.4 图像锐化 156
4.4.1 梯度锐化 156
4.4.2 拉普拉斯掩膜锐化 158
4.5 频域增强 161
4.5.1 低通滤波 162
4.5.2 高通滤波 165
4.5.3 带阻滤波 167
4.5.4 同态滤波 168
4.6 彩色增强 168
4.6.1 真彩色增强 168
4.6.2 假彩色增强 169
4.6.3 伪彩色增强 169
4.7 综合实例——照片处理器 170
4.8 实践拓展 177
第5章 图像复原 178
5.1 图像退化模型 178
5.2 线性复原 178
5.2.1 无约束逆滤波 179
5.2.2 有约束维纳滤波 182
5.2.3 有约束最小平方滤波 185
5.2.4 运动模糊图像复原 189
5.3 非线性复原 194
5.3.1 最大后验复原 194
5.3.2 最大熵复原 199
5.3.3 投影复原 204
5.4 盲目复原与几何复原 207
5.4.1 盲目图像复原 207
5.4.2 图像几何畸变的校正 211
5.5 综合实例——模糊照片复原 214
5.6 实践拓展 217
第6章 图像重建 219
6.1 图像重建与可视化工具VTK 219
6.1.1 图像重建 219
6.1.2 可视化工具VTK 219
6.2 VTK的安装与配置 222
6.2.1 安装前的准备 223
6.2.2 开始实施安装 223
6.2.3 Visual Studio 2005环境的配置 226
6.2.4 测试开发环境 228
6.3 传统重建算法 229
6.3.1 傅里叶反投影重建 229
6.3.2 卷积反投影重建 231
6.3.3 代数重建 232
6.3.4 超分辨率重建 233
6.4 三维重建数据可视化 233
6.4.1 三维图像的面绘制 234
6.4.2 三维图像的体绘制 237
6.5 综合实例——CT图像重建 239
6.6 实践拓展 243
第7章 形态学处理 245
7.1 形态学基本概念 245
7.2 二值图像形态学处理 246
7.2.1 图像腐蚀 246
7.2.2 图像膨胀 249
7.2.3 开运算和闭运算 251
7.2.4 击中击不中变换 254
7.2.5 骨架提取 257
7.3 灰度图像形态学处理 260
7.3.1 灰值腐蚀和膨胀 260
7.3.2 灰值开运算和闭运算 265
7.3.3 灰值形态学梯度 268
7.3.4 Top-Hat变换 269
7.4 综合实例——白细胞检测 271
7.5 实践拓展 275
第8章 图像分割 276
8.1 边缘检测法 276
8.1.1 Roberts算子 276
8.1.2 Sobel算子 278
8.1.3 Prewitt算子 281
8.1.4 Krisch算子 282
8.1.5 Laplacian算子 287
8.1.6 Gauss-Laplacian算子 289
8.2 阈值分割法 290
8.2.1 最大方差阈值分割 291
8.2.2 自适应阈值分割 293
8.3 边界分割法 296
8.3.1 轮廓提取 296
8.3.2 边界跟踪 298
8.4 其他分割法 301
8.4.1 区域生长法 301
8.4.2 彩色分割法 303
8.4.3 分水岭分割法 306
8.4.4 水平集分割法 310
8.5 综合实例——指纹提取 313
8.6 实践拓展 316
第9章 图像匹配 318
9.1 基于像素的匹配 318
9.1.1 归一化积相关灰度匹配 318
9.1.2 序贯相似性检测法匹配 322
9.2 基于特征的匹配 327
9.2.1 不变矩匹配法 327
9.2.2 距离变换匹配法 332
9.2.3 最小均方误差匹配法 340
9.3 综合实例——遥感图像匹配 346
9.4 实践拓展 355
第三篇 数字图像媒体处理技术 357
第10章 图像压缩编码 357
10.1 无损压缩 357
10.1.1 Huffman编码 358
10.1.2 Shannon-Fano编码 364
10.1.3 算术编码 371
10.1.4 游程编码 378
10.1.5 线性预测编码 378
10.1.6 位平面编码 379
10.2 有损压缩 382
10.2.1 有损预测编码 382
10.2.2 变换编码 390
10.3 JPEG 2000编码 392
10.3.1 JPEG 2000概述 392
10.3.2 JPEG 2000编码过程 393
10.3.3 JPEG 2000图像压缩码流格式 397
10.4 综合实例——图像编码解码器 399
10.5 实践拓展 405
第11章 图像特效 406
11.1 显示特效 406
11.1.1 扫描特效 407
11.1.2 移动特效 408
11.1.3 百叶窗特效 410
11.1.4 栅条特效 411
11.1.5 马赛克特效 414
11.1.6 雨滴特效 415
11.2 滤镜效果 416
11.2.1 底片效果 416
11.2.2 雕刻效果 417
11.2.3 黑白效果 419
11.2.4 雾化效果 421
11.2.5 素描效果 423
11.3 综合实例——图像特效编辑器 425
11.4 实践拓展 440
第四篇 数字图像编程高级应用 443
第12章 Visual C++结合OpenCV编程 443
12.1 OpenCV概述 443
12.2 OpenCV编程环境 445
12.2.1 OpenCV的获取 445
12.2.2 OpenCV的安装和Visual C++的配置 446
12.3 OpenCV编程基础 448
12.3.1 OpenCV编程规范 448
12.3.2 OpenCV基础数据结构 451
12.3.3 OpenCV动态数据结构 457
12.3.4 OpenCV常用函数 462
12.3.5 在Visual C++环境下使用OpenCV 477
12.4 综合实例——人脸检测 478
12.5 实践拓展 480
第13章 Visual C++结合MATLAB编程 482
13.1 MATLAB概述 482
13.2 MATLAB图像处理 482
13.2.1 MATLAB程序设计基础 483
13.2.2 MATLAB图像处理工具箱 486
13.2.3 Simulink视频和图像处理模块 489
13.3 在Visual C++中调用MATLAB 490
13.3.1 使用MATLAB引擎 490
13.3.2 使用MATLAB编译器 497
13.3.3 使用MATCOM 504
13.3.4 在VC中调用Simulink模型 510
13.4 综合实例——运动物体跟踪 515
13.5 实践拓展 522
第14章 车牌识别系统综合应用 524
14.1 车牌识别系统概述 524
14.2 车牌识别系统架构 524
14.2.1 系统硬件平台 524
14.2.2 系统软件平台 525
14.3 车牌定位 526
14.3.1 车辆图像采集与预处理 526
14.3.2 车牌区域定位 529
14.4 字符分割 531
14.4.1 图像二值化 531
14.4.2 倾斜校正 531
14.4.3 分割字符 532
14.5 车牌识别 534
14.5.1 字符特征提取 534
14.5.2 分类器设计 535
14.5.3 字符识别 544
14.6 实践拓展 545
参考文献 546