第1章 绪论 1
1.1 数字图像处理概述 1
1.1.1 图像与数字图像 1
1.1.2 数字图像处理研究的内容 3
1.1.3 数字图像处理的应用 5
1.2 Visual C++概述 6
1.2.1 Visual C++简介 6
1.2.2 卓越的集成开发环境 9
1.3 在Visual C++中处理数字图像 12
1.3.1 位图和调色板 13
1.3.2 图形设备接口 14
1.4 本章实例:利用Visual C++实现画图程序 16
1.4.1 实例预览 16
1.4.2 开始创建项目 17
1.4.3 完成实例编码 19
第2章 色彩系统 25
2.1 学习图像处理从认识色彩开始 25
2.1.1 什么是颜色 25
2.1.2 颜色的属性 27
2.1.3 光源能量分布图 28
2.2 CIE色度图 30
2.2.1 CIE色彩模型的建立 30
2.2.2 CIE色度图的理解 32
2.2.3 CIE色度图的后续发展 33
2.3 常用的色彩空间 34
2.3.1 RGB颜色空间 34
2.3.2 CMY/CMYK颜色空间 35
2.3.3 HSV/HSB颜色空间 37
2.3.4 HSI/HSL颜色空间 38
2.3.5 Lab颜色空间 40
2.3.6 YUV/YCbCr颜色空间 40
2.4 色彩空间的转换方法 41
2.4.1 RGB转换到HSV的方法 42
2.4.2 RGB转换到HSI的方法 42
2.4.3 RGB转换到YUV的方法 44
2.4.4 RGB转换到YCbCr的方法 45
2.5 本章实例:Photoshop色彩编辑器的实现 46
2.5.1 需要解决的若干问题 46
2.5.2 开始创建项目 48
2.5.3 完成实例编码 49
第3章 图像的变换与编码 51
3.1 图像编码的理论基础 51
3.1.1 率失真函数 51
3.1.2 香农下边界 60
3.1.3 无记忆高斯信源 63
3.1.4 有记忆高斯信源 67
3.2 图像的压缩编码 74
3.2.1 行程编码 74
3.2.2 LZW编码 75
3.2.3 霍夫曼编码 77
3.3 傅里叶变换 83
3.3.1 傅里叶变换的数学基础 83
3.3.2 傅里叶变换与傅里叶级数的关系 86
3.3.3 数字图像的傅里叶变换 92
3.3.4 快速傅里叶变换的算法 94
3.3.5 编程实现图像的快速傅里叶变换 99
3.4 离散余弦变换 105
3.4.1 基本概念及数学描述 105
3.4.2 离散余弦变换的意义 107
3.4.3 离散余弦变换的实现 109
3.5 子带编码 111
3.5.1 数字信号处理基础 112
3.5.2 多抽样率信号处理 115
3.5.3 图像的子带分解 124
第4章 使用DIB处理数字图像 130
4.1 设备相关位图和设备无关位图 130
4.1.1 设备相关位图(DDB) 130
4.1.2 设备无关位图(DIB) 130
4.2 CBitmap类 131
4.2.1 创建DDB 131
4.2.2 CBitmap中的成员函数 133
4.2.3 应用DDB显示图像 134
4.2.4 应用DDB显示大图像 135
4.3 进一步了解DIB 143
4.3.1 DIB的结构 143
4.3.2 DIB信息段 143
4.3.3 位图数据 145
4.3.4 与DIB有关的函数 145
4.4 本章实例:DIB类的封装 147
4.4.1 类的抽象与设计 148
4.4.2 编写构造函数 150
4.4.3 DIB位图的显示 154
4.4.4 BMP文件的存储 155
第5章 使用GDI+处理数字图像 157
5.1 GDI+简介 157
5.1.1 GDI+概述 157
5.1.2 GDI+的结构 158
5.1.3 GDI+在Visual C++2005中的配置 158
5.2 GDI+基础 160
5.2.1 Graphics类 160
5.2.2 GDI+的基本数据类型 162
5.2.3 GDI+中的颜色 164
5.3 GDI+处理图像的基本方法 165
5.3.1 GDI+的图像类 166
5.3.2 创建图像对象 167
5.3.3 图像的显示和缩放 169
5.3.4 图像的基本处理方法 174
5.4 图像的剪裁 182
5.4.1 剪裁区域 182
5.4.2 GraphicsPath类 183
5.4.3 Region类 187
5.5 处理图像的色彩 191
5.5.1 ColorMatrix结构体 191
5.5.2 改变图像的透明度 192
5.5.3 将图像转换为灰度图 196
5.5.4 改变图像的亮度 198
5.5.5 改变图像的对比度 200
5.6 本章实例:类似ACDSee的图像浏览工具 202
5.6.1 实例预览 203
5.6.2 概要设计 203
5.6.3 完成实例编码 208
第6章 图像文件的格式 212
6.1 图像文件概述 212
6.1.1 图像文件 212
6.1.2 图像文件的一般结构 213
6.1.3 图像文件的常用参数 213
6.2 BMP文件格式 215
6.2.1 文件结构 215
6.2.2 文件头和信息头 215
6.2.3 主要参数 216
6.3 GIF文件格式 216
6.3.1 GIF格式简介 216
6.3.2 GIF文件结构 217
6.3.3 GIF文件块的结构 218
6.3.4 在GDI+下播放GIF动画 222
6.4 PNG文件格式 227
6.4.1 PNG格式简介 227
6.4.2 PNG文件结构 227
6.4.3 PNG中的关键数据块 229
6.5 JPEG文件及其编解码的实现 230
6.5.1 JPEG文件概述 230
6.5.2 JPEG的编解码原理 230
6.5.3 JPEG文件格式 239
6.5.4 JPEG解码程序的实现 242
第7章 图像的点运算 248
7.1 灰度直方图简介 248
7.1.1 灰度直方图简介 248
7.1.2 基本原理 250
7.1.3 编程实现 250
7.2 灰度线性变换 259
7.2.1 基本原理 259
7.2.2 编程实现 262
7.3 灰度非线性变换 265
7.3.1 灰度对数变换 265
7.3.2 灰度幂次变换 269
7.3.3 灰度指数变换 271
7.4 灰度阈值变换 273
7.4.1 基本原理 273
7.4.2 编程实现 274
7.5 灰度拉伸 276
7.5.1 基本原理 276
7.5.2 编程实现 278
7.6 灰度均衡 282
7.6.1 基本原理 283
7.6.2 编程实现 284
第8章 对图像进行几何变换 286
8.1 图像几何变换的基本理论 286
8.1.1 图像几何变换概述 286
8.1.2 图像几何变换的数学描述 289
8.2 图像的平移变换 289
8.2.1 效果预览 289
8.2.2 基本原理 290
8.2.3 编程实现 291
8.3 图像的镜像变换 295
8.3.1 效果预览 295
8.3.2 基本原理 296
8.3.3 编程实现 297
8.4 图像的转置 300
8.4.1 效果预览 300
8.4.2 基本原理 300
8.4.3 编程实现 301
8.5 图像的缩放 303
8.5.1 效果预览 303
8.5.2 基本原理 304
8.5.3 插值算法介绍 305
8.5.4 编程实现 307
8.6 图像的旋转 312
8.6.1 效果预览 312
8.6.2 基本原理 313
8.6.3 编程实现 316
8.7 使用GDI+实现图像的几何变换 322
8.7.1 GDI+的变换操作 323
8.7.2 平移 324
8.7.3 缩放 326
8.7.4 旋转 327
8.7.5 变换的组合 331
8.7.6 利用矩阵进行其他几何变换 333
第9章 图像的增强处理 337
9.1 卷积积分与邻域处理 337
9.1.1 理解卷积积分的概念 337
9.1.2 卷积应用于图像处理的原理 342
9.1.3 邻域处理的基本概念 342
9.2 图像的简单平滑 345
9.2.1 图像的简单平滑原理 345
9.2.2 图像简单平滑的算法实现 346
9.3 图像的高斯平滑 350
9.3.1 平滑线性滤波器 350
9.3.2 高斯平滑的原理 351
9.3.3 高斯分布 352
9.3.4 高斯平滑的算法实现 354
9.4 图像的中值滤波 358
9.4.1 统计排序滤波器 358
9.4.2 图像中值滤波的原理 359
9.4.3 图像中值滤波的算法实现 361
9.5 图像的拉普拉斯锐化 367
9.5.1 图像的锐化 367
9.5.2 拉普拉斯锐化的原理 367
9.5.3 拉普拉斯锐化的算法实现 368
9.6 Sobel边缘细化 372
9.6.1 Sobel边缘细化的原理 372
9.6.2 Sobel边缘细化的算法实现 375
第10章 图像的形态学处理 381
10.1 数学形态学 381
10.2 一些必要的概念和符号约定 381
10.3 图像的腐蚀 385
10.3.1 腐蚀原理 385
10.3.2 编程实现 388
10.4 图像的膨胀 393
10.4.1 膨胀原理 393
10.4.2 编程实现 395
10.5 腐蚀和膨胀的性质及应用 399
10.5.1 腐蚀和膨胀的代数性质 399
10.5.2 腐蚀和膨胀的应用 401
10.6 开运算和闭运算 407
10.6.1 开运算 407
10.6.2 闭运算 409
10.6.3 编程实现 410
10.6.4 开运算和闭运算的代数性质 411
10.7 图像形态学的其他运算 413
10.7.1 击中/不击中运算 413
10.7.2 细化处理 416
第11章 图像的边缘和轮廓 421
11.1 边缘检测 421
11.1.1 边缘检测的基本概念 421
11.1.2 常规边缘检测 423
11.1.3 带方向的边缘检测 427
11.1.4 拉普拉斯算子 432
11.2 Hough变换 438
11.2.1 平面坐标系的转换 438
11.2.2 Hough变换的思想 440
11.2.3 直线的Hough变换 441
11.2.4 圆的Hough变换 444
11.2.5 彩色图像的Hough变换 445
11.3 种子算法 448
11.3.1 算法介绍 448
11.3.2 编程实现 451
11.4 轮廓跟踪 454
11.4.1 区域表示方法 454
11.4.2 计算区域的面积和周长 462
11.4.3 单区域跟踪 464
11.4.4 多区域跟踪 467
11.5 基于形态学分水岭的图像分割 469
11.5.1 基本概念 470
11.5.2 分水岭算法 470
11.5.3 编程实现分水岭分割 473
第12章 数字图像的加密与隐藏 478
12.1 混沌理论概述 478
12.1.1 混沌理论的发展 478
12.1.2 混沌的基本概念 480
12.1.3 混沌的度量与判定 482
12.2 几种典型的混沌系统举例 485
12.2.1 Logistic映射 485
12.2.2 Henon映射 488
12.2.3 Chebychev映射 488
12.3 数字图像的混沌加密简介 489
12.3.1 密码学与混沌密码学 489
12.3.2 图像混沌加密算法的分类 490
12.4 基于置乱的图像加密技术 491
12.4.1 数字图像与排列变换 491
12.4.2 利用Hilbert曲线置乱图像 492
12.4.3 利用Arnold变换置乱图像 495
12.4.4 数字图像置乱算法的评价 499
12.5 混沌在图像加密中的应用 499
12.5.1 以排序法为基础的混沌置乱 500
12.5.2 基于起始地址法的混沌置乱 507
12.5.3 基于灰度值变换的混沌加密 507
12.5.4 对图像进行混沌加密的评价 510
12.6 数字图像的隐藏技术 514
12.6.1 图像融合技术简介 515
12.6.2 基于混沌的图像隐藏算法 516
12.6.3 图形用户界面设计 518
12.6.4 编码实现 518
第13章 小波变换及其应用 519
13.1 哈尔函数与哈尔变换 519
13.1.1 哈尔函数的定义 519
13.1.2 哈尔函数的性质 520
13.1.3 酉矩阵与酉变换 521
13.1.4 二维离散线性变换 521
13.1.5 哈尔基函数 523
13.1.6 哈尔变换 525
13.2 小波的数学基础 529
13.2.1 小波的历史 529
13.2.2 理解小波的概念 530
13.2.3 多分辨率分析 532
13.2.4 小波函数的构建 536
13.2.5 小波序列展开 538
13.2.6 离散小波变换 539
13.2.7 连续小波变换 540
13.2.8 小波的容许条件与基本特征 542
13.3 快速小波变换 543
13.3.1 快速小波正变换 543
13.3.2 快速小波逆变换 547
13.3.3 图像的小波变换 549
13.4 小波在图像处理中的应用 551
第14章 偏微分方程与图像降噪 554
14.1 PM方程及其应用 554
14.1.1 一维热传导方程 554
14.1.2 各向异性扩散方程 559
14.1.3 PM扩散方程的实现 565
14.1.4 加性算子分裂 570
14.2 TV方法及其应用 578
14.2.1 泛函与变分法 578
14.2.2 全变分模型 581
14.2.3 TV算法的数值实现 583
14.2.4 基于TV的图像降噪实例 584