目录 1
第1章 位图基础知识 1
1.1 引言 1
1.2 数字图像的基本概念 2
1.3 颜色和调色板 4
1.3.1 颜色 4
1.3.2 调色板的基本概念 7
1.3.3 调色板的操作 8
1.4 与设备相关位图 13
1.5.1 DIB位图的结构 18
1.5 与设备无关的位图 18
1.5.2 Win32 SDK DIB位图操作函数 21
1.5.3 自定义DIB位图函数 25
第2章 构造CDib类 31
2.1 CDib类的总体设计 31
2.1.1 CDib类的基本功能 31
2.1.2 CDib类基本操作函数 32
2.2 基于CDib类的其他操作函数 68
第3章 图像感知与获取 73
3.1 视觉基础 73
3.1.1 视觉系统 73
3.1.2 视觉模型 75
3.2 图像获取 77
3.3.1 确定性图像场抽样 78
3.3 图像采样 78
3.3.2 随机图像取样 80
3.4 量化 82
3.5 图像显示 86
3.5.1 图案法显示 86
3.5.2 图案法显示图像的Visual C++实现 88
3.5.3 随机抖动法显示图像 91
3.5.4 随机抖动法显示图像的Visual C++实现 92
4.1 对比度增强 97
4.1.1 灰度变换法 97
第4章 图像增强 97
4.1.2 直方图修整法 100
4.1.3 Visual C++编程实现 102
4.2 图像平滑 130
4.2.1 模板操作 130
4.2.2 图像平滑技术 134
4.2.3 Visual C++编程实现 137
4.3 图像锐化 173
4.3.1 微分方法 174
4.3.2 高通滤波方法 175
4.3.3 Visual C++编程实现 175
4.4.2 Visual C++编程实现 192
4.4.1 伪彩色和假彩色增强技术 192
4.4 伪彩色和假彩色增强 192
第5章 图像复原 201
5.1 图像退化的数学模型 201
5.1.1 退化系统的基本定义 202
5.1.2 连续函数的退化模型 202
5.1.3 离散函数的退化模型 203
5.2 运动模糊图像复原 206
5.2.1 由匀速直线运动引起的图像模糊 206
5.2.2 运动模糊图像复原的Visual C++实现 208
5.3.1 非约束复原的基本方法 218
5.3 非约束复原 218
5.3.2 逆滤波复原 219
5.3.3 逆滤波复原的Visual C++实现 220
5.3.4 维纳滤波方法 231
5.3.5 维纳滤波的Visual C++实现 233
5.4 约束复原 244
第6章 图像处理中的正交变换 245
6.1 傅立叶变换 245
6.1.1 傅立叶级数 245
6.1.2 连续变量的傅立叶变换及其性质 246
6.1.3 离散傅立叶变换及其性质 249
6.1.4 快速傅立叶变换 250
6.1.6 二维图像快速傅立叶变换的Visual C++程序实现 253
6.1.5 二维图像的快速傅立叶变换 253
6.2 离散余弦变换(DCT) 272
6.2.1 离散余弦变换定义 272
6.2.2 离散余弦变换的计算 274
6.2.3 离散余弦变换的Visual C++实现 275
6.3 沃尔什变换 282
6.3.1 沃尔什函数 283
6.3.2 离散沃尔什变换 288
6.3.3 快速沃尔什变换 289
6.3.4 沃尔什—哈达玛变换的Visual C++实现 292
6.4.2 主向量分析(PCA) 299
6.4.1 特征分析 299
6.4 基于特征向量的变换 299
6.4.3 霍特林(Hotelling)变换 300
6.4.4 SVD变换 302
6.4.5 霍特林变换的Visual C++实现 303
6.5 小波变换 316
6.5.1 连续小波变换 317
6.5.2 离散小波变换 319
6.5.3 二进小波变换 320
6.5.4 小波变换的多分辨率分析 320
6.5.5 Mallat算法 321
6.5.6 小波变换的Visual C++实现 323
7.1 图像压缩编码理论基础 338
第7章 图像压缩编码 338
7.2 图像编码分类 340
7.3 霍夫曼(Huffman)编码 341
7.3.1 霍夫曼编码理论及算法 341
7.3.2 霍夫曼编码的Visual C++实现 343
7.4 香农-费诺(Shannon-Fano)编码 353
7.4.1 香农—费诺编码的理论及算法 353
7.4.2 香农—费诺码的Visual C++实现 354
7.5 算术编码 366
7.5.1 算术编码的理论及算法 367
7.5.2 算术编码的Visual C++实现 369
7.6.1 基本原理 377
7.6 游程编码(Run Length Coding) 377
7.6.2 PCX文件格式及其编码方法 378
7.6.3 编程实现PCX文件格式的读写 380
7.7 位平面编码 380
7.7.1 位编码理论 380
7.7.2 位平面编码的Visual C++实现 382
7.8 预测编码 385
7.8.1 DPCM的基本原理 385
7.8.2 预测编码的类型 386
7.8.3 预测编码的Visual C++实现 387
7.9 JPEG 2000编码 401
7.9.1 JPEG 2000概述 402
7.9.2 JPEG 2000图像编解码系统 403
7.9.3 JPEG 2000图像压缩码流格式 407
第8章 图像配准 409
8.1 图像配准理论基础 409
8.1.1 图像变换 409
8.1.2 相似性测度 410
8.1.3 插值 412
8.1.4 最小二乘法 412
8.2 图像配准中常用的技术 413
8.2.1 点映射 413
8.2.4 相似性测度的选择 414
8.2.3 特征空间的选择 414
8.2.2 基于弹性模型的匹配 414
8.2.5 搜索空间和策略的选择 415
8.3 Visual C++编程实现图像配准 415
第9章 目标检测与运动检测 457
9.1 静止背景下的运动目标检测 457
9.1.1 背景恢复 458
9.1.2 基于静止背景的运动目标提取 458
9.2 运动背景下的运动目标检测 459
9.2.1 光流方法 459
9.2.2 全局运动预测 460
9.2.3 基于块的运动检测方法 461
9.3 Visual C++编程实现 463
10.1 图像的矩 475
10.1.1 矩的定义 475
第10章 图像形状特征分析 475
10.1.2 Visual C++编程求图像的矩 476
10.2 图像的空穴检出 481
10.2.1 定义及算法 481
10.2.2 空穴检出的Visual C++实现 481
10.3 图像的骨架检出 489
10.3.1 图像的市街区距离 489
10.3.2 图像骨架提取的Visual C++实现 489
10.4.2 Visual C++实现 499
10.4 轮廓提取 499
10.4.1 基本概念 499
第11章 图像分割 504
11.1 图像分割研究 504
11.1.1 图像分割定义 504
11.1.2 图像分割的方法 505
11.2 并行边界分割 506
11.2.1 边界检测的数学基础 507
11.2.2 数字图像的边界检测 508
11.2.3 并行边界分割的Visual C++实现 509
11.3 串行边界分割 528
11.3.1 边界跟踪 529
11.3.2 边界跟踪的Visual C++实现 530
11.4 并行区域分割 535
11.4.1 阈值分割 535
11.4.2 自适应阈值选取 537
11.4.3 阈值分割的Visual C++实现 538
11.5 串行区域分割 546
11.5.1 区域生长 546
11.5.2 分裂合并 548
11.5.3 区域生长的Visual C++实现 548
11.6.1 Canny算子介绍 553
11.6.2 Canny算子的Visual C++实现 553
11.6 Canny算子 553
第12章 图像的模式识别 573
12.1 图像匹配 573
12.1.1 模板匹配 574
12.1.2 其他快速匹配方法 577
12.2 统计模式识别 582
12.2.1 决策理论方法 582
12.2.2 统计分类法 587
12.2.3 特征的提取和选择 591
12.3 线性分类器 592
12.3.1 Fisher判别准则 592
12.4 Visual C++编程实现 595