导读:内容简介 《精通系列精通Visual C++数字图像处理典型算法及实现(第2版)》主要讲述了Visual C++数字图像处理典型算法及实现。《精通系列精通Visual C++数字图像处理典型算法及实现(第2版)》共12章,分别介绍了数字图像编程基础,图像感知与获取,图像的点运算...
内容简介《精通系列•精通Visual C++数字图像处理典型算法及实现(第2版)》主要讲述了Visual C++数字图像处理典型算法及实现。《精通系列•精通Visual C++数字图像处理典型算法及实现(第2版)》共12章,分别介绍了数字图像编程基础,图像感知与获取,图像的点运算,图像的几何变换,图像的正交变换,图像的增强,数字图像腐蚀算法、膨胀算法、细化算法,图像边缘检测与提取、轮廓跟踪,图像分割,图像配准,图像复原和图像的压缩编码技术等内容。对每种常用的数字图像处理方法,《精通系列•精通Visual C++数字图像处理典型算法及实现(第2版)》都提供了完整的源代码。
编辑推荐
《精通系列•精通Visual C++数字图像处理典型算法及实现(第2版)》内容丰富,叙述详细,实用性强,适合于数字图像处理工作者阅读参考。
作 者: | 张宏林 | ||
出 版 社: | 人民邮电出版社 | ||
出版时间: | 2008年07月 | 版 次: | 2 |
印刷时间: | 2008年07月 | 开 本: | 4 |
I S B N : | 9787115180490 | 包 装: | 1 |
分 类: |
|
第1章 Visual C++数字图像编程基础 1
1.1 数字图像处理概述 1
1.2 图像和调色板 2
1.2.1 图像 2
1.2.2 调色板 3
1.2.3 色彩系统 4
1.2.4 灰度图 5
1.3 GDI位图 5
1.3.1 从资源中装入GDI位图 6
1.3.2 伸缩位图 8
1.4 与设备相关位图 10
1.5 设备无关位图(DIB) 15
1.5.1 BMP文件中DIB的结构 16
1.5.2 DIB访问函数 18
1.5.3 构造DIB类 22
1.5.4 使用DIB读写BMP文件示例 33
第2章 图像感知与获取 45
2.1 视觉基础 45
2.1.1 视觉系统 45
2.1.2 视觉模型 47
2.2 图像获取 48
2.3 图像采样 50
2.3.1 确定性图像场抽样 50
2.3.2 随机图像取样 52
2.4 量化 53
2.5 图像显示 57
2.5.1 图案法显示 58
2.5.2 图案法显示图像的Visual C++实现 59
2.5.3 随机抖动法显示图像 62
2.5.4 随机抖动法显示图像的Visual C++实现 63
第3章 图像的点运算 67
3.1 灰度直方图 67
3.1.1 灰度直方图的定义 67
3.1.2 编程绘制灰度直方图 69
3.2 灰度的线性变换 77
3.2.1 功能与效果 77
3.2.2 原理与算法 77
3.2.3 Visual C++编程实现 77
3.3 灰度的阈值变换 89
3.3.1 功能与效果 89
3.3.2 原理与算法 90
3.3.3 Visual C++编程实现 90
3.4 灰度的窗口变换 96
3.4.1 功能与效果 96
3.4.2 原理与算法 97
3.4.3 Visual C++编程实现 97
3.5 灰度拉伸 106
3.5.1 功能与效果 106
3.5.2 原理与算法 106
3.5.3 Visual C++编程实现 106
3.6 灰度均衡 117
3.6.1 功能与效果 117
3.6.2 原理与算法 117
3.6.3 Visual C++编程实现 118
第4章 图像的几何变换 121
4.1 图像的平移 121
4.1.1 功能与效果 121
4.1.2 原理与算法 122
4.1.3 Visual C++编程实现 124
4.2 图像的镜像变换 130
4.2.1 功能与效果 130
4.2.2 原理与算法 130
4.2.3 Visual C++编程实现 132
4.3 图像的转置 135
4.3.1 功能与效果 135
4.3.2 原理与算法 136
4.3.3 Visual C++编程实现 136
4.4 图像的缩放 139
4.4.1 功能与效果 139
4.4.2 原理与算法 139
4.4.3 Visual C++编程实现 140
4.5 图像的旋转 144
4.5.1 功能与效果 144
4.5.2 原理与算法 145
4.5.3 Visual C++编程实现 147
4.6 插值算法简介 153
4.6.1 最邻近插值 153
4.6.2 双线性插值 153
4.6.3 高阶插值 158
第5章 图像的正交变换 159
5.1 傅立叶变换 159
5.1.1 傅立叶变换的基本概念 159
5.1.2 傅立叶变换的性质 160
5.1.3 离散傅立叶变换 162
5.1.4 离散傅立叶变换的性质 164
5.1.5 快速傅立叶变换 167
5.1.6 Visual C++编程实现图像傅立叶变换 174
5.2 离散余弦变换 180
5.2.1 功能和效果 180
5.2.2 原理和算法 180
5.2.3 Visual C++编程实现图像离散余弦变换 183
5.3 沃尔什变换 189
5.3.1 沃尔什函数 189
5.3.2 沃尔什变换 191
5.3.3 离散沃尔什-哈达玛变换 192
5.3.4 快速沃尔什-哈达玛变换 192
5.3.5 Visual C++编程实现图像沃尔什-哈达玛变换 196
5.4 基于特征向量的变换 203
5.4.1 特征分析 203
5.4.2 主向量分析(PCA) 204
5.4.3 霍特林(Hotelling)变换 204
5.4.4 SVD变换 205
5.4.5 霍特林变换的Visual C++实现 207
5.5 小波变换 217
5.5.1 连续小波变换 218
5.5.2 离散小波变换 220
5.5.3 二进小波变换 220
5.5.4 小波变换的多分辨率分析 221
5.5.5 Mallat算法 222
5.5.6 小波变换的Visual C++实现 224
第6章 图像的增强 236
6.1 图像的灰度修正 237
6.2 模板操作 237
6.3 图像的平滑 240
6.3.1 功能与效果 240
6.3.2 原理与算法 240
6.3.3 Visual C++编程实现 241
6.4 中值滤波 248
6.4.1 功能与效果 248
6.4.2 原理与算法 248
6.4.3 Visual C++编程实现 249
6.5 图像的锐化 256
6.5.1 梯度锐化 256
6.5.2 拉普拉斯锐化 261
6.5.3 高通滤波器 264
6.6 伪彩色和假彩色增强 267
6.6.1 伪彩色和假彩色增强技术 267
6.6.2 Visual C++编程实现 268
第7章 数字图像腐蚀、膨胀和细化算法 275
7.1 数学形态学 275
7.1.1 什么是数学形态学 275
7.1.2 数学形态学中的基本符号和术语 276
7.2 图像腐蚀(Erosion) 278
7.2.1 功能与效果 278
7.2.2 原理与算法 279
7.2.3 Visual C++编程实现 282
7.3 图像膨胀(Dilation) 290
7.3.1 功能和效果 290
7.3.2 原理和算法 290
7.3.3 腐蚀和膨胀的代数性质 292
7.3.4 Visual C++编程实现 293
7.4 开(Open)运算和闭(Close)运算 300
7.4.1 功能和效果 300
7.4.2 原理和算法 302
7.4.3 开、闭运算的代数性质 305
7.4.4 Visual C++编程实现 306
7.5 数学形态学的其他运算 317
7.5.1 击中/击不中(Hit/Miss)变换 317
7.5.2 细化(Thinning) 319
7.5.3 Visual C++编程实现 320
第8章 图像边缘检测、提取及轮廓跟踪 325
8.1 边缘检测 325
8.1.1 功能与效果 325
8.1.2 原理和算法 328
8.1.3 Visual C++编程实现 330
8.2 Hough变换 348
8.2.1 功能与效果 348
8.2.2 原理和算法 348
8.2.3 Hough变换的Visual C++编程实现 350
8.3 轮廓提取与轮廓跟踪 355
8.3.1 功能与效果 355
8.3.2 原理和算法 356
8.3.3 轮廓提取与跟踪的Visual C++编程实现 357
8.4 种子填充 362
8.4.1 功能与效果 362
8.4.2 原理和算法 363
8.4.3 种子填充的Visual C++编程实现 366
第9章 图像分割 374
9.1 图像分割研究 375
9.1.1 图像分割定义 375
9.1.2 图像分割的方法 375
9.2 并行边界分割 376
9.2.1 边界检测的数学基础 377
9.2.2 数字图像的边界检测 378
9.2.3 并行边界分割的Visual C++实现 380
9.3 串行边界分割 395
9.3.1 边界跟踪 395
9.3.2 边界跟踪的Visual C++实现 396
9.4 并行区域分割 400
9.4.1 阈值分割 400
9.4.2 自适应阈值选取 402
9.4.3 阈值分割的Visual C++实现 402
9.5 串行区域分割 409
9.5.1 区域生长 409
9.5.2 分裂合并 410
9.5.3 区域生长的Visual C++实现 410
9.6 Canny算子 414
9.6.1 Canny算子介绍 414
9.6.2 Canny算子的Visual C++实现 415
第10章 图像配准 430
10.1 图像配准理论基础 431
10.1.1 图像变换 431
10.1.2 相似性测度 432
10.1.3 插值 433
10.1.4 最小二乘法 434
10.2 图像配准中常用的技术 434
10.2.1 点映射 435
10.2.2 基于弹性模型的匹配 435
10.2.3 特征空间的选择 436
10.2.4 相似性测度的选择 436
10.2.5 搜索空间和策略的选择 436
10.3 Visual C++编程实现图像配准 437
第11章 图像复原 469
11.1 图像退化的数学模型 469
11.1.1 退化系统的基本定义 470
11.1.2 连续函数的退化模型 470
11.1.3 离散函数的退化模型 471
11.2 运动模糊图像复原 474
11.2.1 由匀速直线运动引起的图像模糊 474
11.2.2 运动模糊图像复原的Visual C++实现 476
11.3 非约束复原 484
11.3.1 非约束复原的基本方法 484
11.3.2 逆滤波复原 485
11.3.3 逆滤波复原的Visual C++实现 485
11.3.4 维纳滤波方法 494
11.3.5 维纳滤波的Visual C++实现 495
11.4 约束复原 504
第12章 图像压缩编码 505
12.1 图像压缩编码理论基础 505
12.2 图像编码分类 508
12.3 霍夫曼(Huffman)编码 509
12.3.1 霍夫曼编码理论及算法 509
12.3.2 霍夫曼编码的Visual C++实现 510
12.4 香农-费诺(Shannon-Fano)编码 519
12.4.1 香农-费诺编码的理论及算法 519
12.4.2 香农-费诺编码的Visual C++实现 519
12.5 算术编码 529
12.5.1 算术编码的理论及算法 530
12.5.2 算术编码的Visual C++实现 532
12.6 游程编码(Run Length Coding) 539
12.6.1 基本原理 539
12.6.2 PCX文件格式及其编码方法 540
12.6.3 编程实现PCX文件格式的读写 541
12.7 位平面编码 541
12.7.1 位编码理论 541
12.7.2 位平面编码的Visual C++实现 543
12.8 预测编码 546
12.8.1 DPCM的基本原理 546
12.8.2 预测编码的类型 547
12.8.3 预测编码的Visual C++实现 548
12.9 JPEG 2000编码 559
12.9.1 JPEG 2000概述 560
12.9.2 JPEG 2000图像编解码系统 561
12.9.3 JPEG 2000图像压缩码流格式 565
文摘
第1章 Visual C++数字图像编程基础
1.1 数字图像处理概述
数字图像处理(Digital Image Processing)是指用计算机对图像信息进行的处理,因此也称为计算机图像处理(Computer Image Processing)。数字图像处理技术处理精度比较高,而且还可以通过改进处理软件来优化处理效果。总地来说,数字图像处理包括以下内容。
(1)点运算
点运算主要是针对图像的像素进行加、减、乘、除等运算。图像的点运算可以有效地改变图像的直方图分布,这对提高图像的分辨率以及图像的均衡都是非常有益的。
(2)几何处理
几何处理主要包括图像的坐标转换,图像的移动、缩小、放大和旋转,多个图像的配准和图像扭曲校正等。几何处理是最常见的图像处理手段,几乎任何图像处理软件都提供了最基本的图像缩放功能。图像的扭曲校正功能可以对变形的图像进行几何校正,从而得出准确的图像。
(3)图像增强
图像增强主要是突出图像中重要的信息,同时减弱或去除不需要的信息。常用方法有直方图增强和伪彩色增强等。
(4)图像复原
图像复原的主要目的是去除干扰和模糊,从而恢复图像的本来面目。例如去噪声复原处理。
(5)图像形态学处理
图像形态学是数学形态学的延伸,是一门独立的研究学科。利用图像形态学处理技术,可以实现图像的腐蚀、细化和分割等效果。
(6)图像编码
图像编码研究属于信息论中信源编码的范畴,主要是利用图像信号的统计特性和人类视觉特性对图像进行高效编码,从而达到压缩图像的目的。