简介
左飞,万晋森,刘航所著的这本《数字图像处理原理与实践――基于
Visual C++开发》全面系统地讲述了在Visual C++环境下进行数字图像处
理编程的技术和方法。全书共分成14章,针对数字图像处理领域中的核心
话题,如色彩空间、图像文件格式、图像的点运算、图像的几何变换、图
像的增强处理、边缘检测和轮廓跟踪、图像形态学、图像分割、图像加密
等,进行了详细的介绍。另外,针对Visual C++ 2005下的数字图像处理开
发,本书还对设备无关位图、图形设备接口、OpenCV及ImageMagick等在实
际开发中常用的具体技术进行了讲解,并辅以大量实例代码,具有很强的
参考价值。
《数字图像处理原理与实践――基于Visual C++开发》兼有源于实践
、贴近应用、深入浅出、通俗易懂的优点,又紧跟时代脉搏,牢牢把握最
新技术方向,从案例出发强调新环境下的新方法。本书内容实用、体例新
颖,既可以作为希望进行数字图像处理学习和研究的初学者的自学教材,
也可作为大专院校计算机及相关专业师生或工程技术人员的参考书。
目录
第1章 Visual C++与数字图像处理 1
1.1 数字图像处理概述 1
1.1.1 图像与数字图像 1
1.1.2 数字图像处理研究的内容 3
1.1.3 数字图像处理的应用 5
1.2 Visual C++概述 7
1.2.1 编程语言的奇迹 7
1.2.2 Visual C++简介 15
1.2.3 卓越的集成开发环境 18
1.3 在Visual C++中处理数字图像 21
1.3.1 位图和调色板 21
1.3.2 图形设备接口 22
1.3.3 OpenCV 25
1.3.4 ImageMagick 25
1.4 本章实例:利用Visual C++实现画图程序 25
1.4.1 实例预览 25
1.4.2 开始创建项目 26
1.4.3 完成实例编码 28
第2章 色彩系统 34
2.1 学习图像处理从认识色彩开始 34
2.1.1 什么是颜色 34
2.1.2 颜色的属性 36
2.1.3 光源能量分布图 37
2.2 CIE色度图 39
2.2.1 CIE色彩模型的建立 39
2.2.2 CIE色度图的理解 41
2.2.3 CIE色度图的后续发展 42
2.3 常用色彩空间 43
2.3.1 RGB颜色空间 43
2.3.2 CMY/CMYK颜色空间 44
2.3.3 HSV/HSB颜色空间 46
2.3.4 HSI/HSL颜色空间 47
2.3.5 Lab颜色空间 49
2.3.6 YUV/YCbCr颜色空间 49
2.4 色彩空间的转换方法 50
2.4.1 RGB转换到HSV的方法 51
2.4.2 RGB转换到HSI的方法 51
2.4.3 RGB转换到YUV的方法 53
2.4.4 RGB转换到YCbCr的方法 54
2.5 本章实例:Photoshop色彩编辑器的实现 55
2.5.1 需要解决的若干问题 55
2.5.2 开始创建项目 56
2.5.3 完成实例编码 58
第3章 图像文件的格式与编码 60
3.1 图像文件概述 60
3.1.1 图像文件 60
3.1.2 图像文件的一般结构 61
3.1.3 图像文件的常用参数 61
3.2 BMP文件格式 63
3.2.1 文件结构 63
3.2.2 文件头和信息头 63
3.2.3 主要参数 64
3.3 GIF文件格式 64
3.3.1 GIF格式简介 64
3.3.2 GIF文件结构 65
3.3.3 GIF文件块的结构 66
3.4 PNG文件格式 70
3.4.1 PNG格式简介 70
3.4.2 PNG文件结构 70
3.4.3 PNG中的关键数据块 72
3.5 离散余弦变换 73
3.5.1 基本概念及数学描述 73
3.5.2 离散余弦变换的意义 75
3.5.3 离散余弦变换的实现 79
3.6 图像的压缩编码 86
3.6.1 霍夫曼(Huffman)编码 87
3.6.3 LZW编码 96
3.6.3 行程编码 98
3.7 JPEG文件及其解码程序的实现 99
3.7.1 JPEG文件概述 99
3.7.2 JPEG的编解码原理 99
3.7.3 JPEG文件的格式 108
3.7.4 JPEG解码程序的实现 111
第4章 使用DIB处理数字图像 117
4.1 设备相关位图和设备无关位图 117
4.1.1 设备相关位图(DDB) 117
4.1.2 设备无关位图(DIB) 117
4.2 CBitmap类 118
4.2.1 创建DDB 118
4.2.2 CBitmap中的成员函数 120
4.2.3 应用DDB显示图像 121
4.2.4 应用DDB显示大图像 122
4.3 进一步了解DIB 130
4.3.1 DIB的结构 131
4.3.2 DIB信息段 131
4.3.3 位图数据 133
4.3.4 与DIB有关的函数 133
4.4 本章实例:DIB类的封装 135
4.4.1 类的抽象与设计 135
4.4.2 编写构造函数 138
4.4.3 DIB位图的显示 142
4.4.4 BMP文件的存储 143
第5章 使用GDI+处理数字图像 145
5.1 GDI+简介 145
5.1.1 GDI+概述 145
5.1.2 GDI+的结构 146
5.1.3 GDI+在Visual C++ 2005中的配置 146
5.2 GDI+基础 148
5.2.1 Graphics类 148
5.2.2 GDI+的基本数据类型 151
5.2.3 GDI+中的颜色 152
5.3 GDI+处理图像的基本方法 154
5.3.1 GDI+的图像类 154
5.3.2 创建图像对象 155
5.3.3 图像的显示和缩放 157
5.3.4 图像的基本处理方法 162
5.4 图像的剪裁 170
5.4.1 剪裁区域 170
5.4.2 GraphicsPath类 171
5.4.3 Region类 175
5.5 处理图像的色彩 180
5.5.1 ColorMatrix结构体 180
5.5.2 改变图像的透明度 181
5.5.3 将图像转换为灰度图 185
5.5.4 改变图像的亮度 187
5.5.5 改变图像的对比度 189
5.6 本章实例:播放GIF动画 191
5.6.1 播放原理分析 192
5.6.2 处理过程 192
5.6.3 具体实现 193
第6章 常见图像显示特效 198
6.1 显示特效概述 198
6.1.1 显示特效基础 198
6.1.2 显示特效过程 200
6.1.3 显示特效类 201
6.2 扫描显示特效 203
6.2.1 特效预览 203
6.2.2 基本原理和实现方法 204
6.2.3 编程实现 205
6.3 移动显示特效 206
6.3.1 特效预览 206
6.3.2 基本原理和实现方法 207
6.3.3 编程实现 208
6.4 百叶窗显示特效 209
6.4.1 特效预览 209
6.4.2 基本原理和实现方法 210
6.4.3 编程实现 211
6.5 栅条显示特效 212
6.5.1 特效预览 213
6.5.2 基本原理和实现方法 213
6.5.3 编程实现 214
6.6 马赛克显示特效 216
6.6.1 特效预览 216
6.6.2 基本原理和实现方法 216
6.6.3 编程实现 217
6.7 雨滴显示特效 219
6.7.1 特效预览 219
6.7.2 基本原理和实现方法 219
6.7.3 编程实现 220
6.8 本章实例:类似ACDSee的图像浏览工具 220
6.8.1 实例预览 221
6.8.2 概要设计 221
6.8.3 完成实例编码 226
第7章 图像的点运算 234
7.1 灰度直方图 234
7.1.1 灰度直方图 234
7.1.2 基本原理 236
7.1.3 编程实现 236
7.2 灰度线性变换 246
7.2.1 基本原理 246
7.2.2 编程实现 248
7.3 灰度非线性变换 251
7.3.1 灰度对数变换 251
7.3.2 灰度幂次变换 255
7.3.3 灰度指数变换 258
7.4 灰度阈值变换 260
7.4.1 基本原理 260
7.4.2 编程实现 261
7.5 灰度拉伸 263
7.5.1 基本原理 263
7.5.2 编程实现 265
7.6 灰度均衡 269
7.6.1 基本原理 270
7.6.2 编程实现 271
第8章 对图像进行几何变换 273
8.1 图像几何变换的基本理论 273
8.1.1 图像几何变换概述 273
8.1.2 图像几何变换的数学描述 276
8.2 图像的平移变换 276
8.2.1 效果预览 276
8.2.2 基本原理 277
8.2.3 编程实现 278
8.3 图像的镜像变换 282
8.3.1 效果预览 282
8.3.2 基本原理 283
8.3.3 编程实现 284
8.4 图像的转置 287
8.4.1 效果预览 288
8.4.2 基本原理 288
8.4.3 编程实现 288
8.5 图像的缩放 290
8.5.1 效果预览 290
8.5.2 基本原理 291
8.5.3 插值算法介绍 292
8.5.4 编程实现 295
8.6 图像的旋转 300
8.6.1 效果预览 300
8.6.2 基本原理 300
8.6.3 编程实现 304
8.7 使用GDI+实现图像的几何变换 310
8.7.1 GDI+的变换操作 311
8.7.2 平移 312
8.7.3 缩放 314
8.7.4 旋转 315
8.7.5 变换的组合 319
8.7.6 利用矩阵进行其他几何变化 321
第9章 图像的增强处理 325
9.1 图像的简单平滑 325
9.1.1 邻域处理的基本概念 325
9.1.2 图像的简单平滑原理 328
9.1.3 图像简单平滑的算法实现 329
9.2 图像的高斯平滑 333
9.2.1 平滑线性滤波器 333
9.2.2 高斯平滑的原理 334
9.2.3 高斯分布 335
9.2.4 高斯平滑的算法实现 337
9.3 图像的中值滤波 341
9.3.1 统计排序滤波器 341
9.3.2 图像中值滤波的原理 342
9.3.3 图像中值滤波的算法实现 344
9.4 图像的拉普拉斯锐化 350
9.4.1 图像的锐化 350
9.4.2 拉普拉斯锐化的原理 351
9.4.3 拉普拉斯锐化的算法实现 351
9.5 Sobel边缘细化 356
9.5.1 Sobel边缘细化的原理 356
9.5.2 Sobel边缘细化的编程实现 358
第10章 图像的边缘和轮廓 365
10.1 边缘检测 365
10.1.1 边缘检测的基本概念 365
10.1.2 常规边缘检测 366
10.1.3 带方向的边缘检测 372
10.1.4 拉普拉斯算子 376
10.2 Hough变换 383
10.2.1 平面坐标系的转换 383
10.2.2 Hough变换的思想 385
10.2.3 直线的Hough变换 385
10.2.4 圆的Hough变换 389
10.2.5 彩色图像的Hough变换 390
10.3 种子算法 396
10.3.1 算法介绍 396
10.3.2 编程实现 399
10.4 轮廓跟踪 403
10.4.1 区域表示方法 403
10.4.2 计算区域的面积和周长 411
10.4.3 单区域跟踪 412
10.4.4 多区域跟踪 415
第11章 图像的形态学处理 419
11.1 数学形态学 419
11.2 一些必要的概念和符号约定 419
11.3 图像的腐蚀 423
11.3.1 腐蚀原理 423
11.3.2 编程实现 426
11.4 图像的膨胀 431
11.4.1 膨胀原理 431
11.4.2 编程实现 434
11.5 腐蚀和膨胀的性质及应用 437
11.5.1 腐蚀和膨胀的代数性质 437
11.5.2 腐蚀和膨胀的应用 440
11.6 开运算和闭运算 446
11.6.1 开运算 446
11.6.2 闭运算 447
11.6.3 编程实现 449
11.6.4 开运算和闭运算的代数性质 450
11.7 图像形态学的其他运算 452
11.7.1 击中/不击中运算 452
11.7.2 细化处理 455
11.8 基于形态学分水岭的图像分割 459
11.8.1 基本概念 459
11.8.2 分水岭算法 459
11.8.3 编程实现分水岭分割 462
第12章 数字图像的加密与隐藏 471
12.1 混沌理论概述 471
12.1.1 混沌理论的发展 471
12.1.2 混沌的基本概念 473
12.1.3 混沌的度量与判定 475
12.2 几种典型的混沌系统举例 478
12.2.1 Logistic映射 478
12.2.2 Henon映射 481
12.2.3 Chebychev映射 481
12.3 数字图像的混沌加密简介 482
12.3.1 密码学与混沌密码学 482
12.3.2 图像混沌加密算法的分类 483
12.4 基于置乱的图像加密技术 484
12.4.1 数字图像与排列变换 484
12.4.2 利用Hilbert曲线置乱图像 485
12.4.3 利用Arnold变换置乱图像 492
12.4.4 数字图像置乱算法的评价 497
12.5 混沌在图像加密中的应用 497
12.5.1 以排序法为基础的混沌置乱 498
12.5.2 基于起始地址法的混沌置乱 508
12.5.3 基于灰度值变换的混沌加密 509
12.5.4 对图像进行混沌加密的评价 512
12.6 数字图像的隐藏技术 516
12.6.1 图像融合技术简介 516
12.6.2 基于混沌的图像隐藏算法 518
12.6.3 图形用户界面设计 519
12.6.4 编码实现 520
第13章 使用OpenCV处理数字图像 528
13.1 OpenCV简介 528
13.1.1 OpenCV的前世今生 528
13.1.2 OpenCV的诸多优点 529
13.1.3 OpenCV的命名规则 529
13.1.4 OpenCV的相关资源 530
13.1.5 OpenCV的安装与配置 530
13.2 OpenCV的结构 533
13.2.1 OpenCV的体系结构 534
13.2.2 OpenCV的函数结构 534
13.2.3 OpenCV的功能结构 535
13.2.4 OpenCV的数据结构 536
13.3 利用OpenCV显示图像 537
13.3.1 图像文件的载入与显示 538
13.3.2 图像文件的创建、保存和复制 539
13.4 应用OpenCV进行图像平滑 543
13.4.1 功能函数描述 543
13.4.2 交互界面设计 544
13.4.3 编码实现 544
13.5 应用OpenCV进行边缘检测 548
13.5.1 Canny准则 548
13.5.2 Canny算法简介 548
13.5.3 在OpenCV中使用Canny算法 549
13.6 应用OpenCV进行形态学处理 555
13.6.1 功能函数描述 555
13.6.2 交互界面设计 556
13.6.3 编码实现 556
13.7 在OpenCV中应用Hough变换 560
13.7.1 功能函数描述 560
13.7.2 交互界面设计 562
13.7.3 编码实现 562
13.8 静态人脸检测程序的实现 567
13.8.1 人脸检测概述 567
13.8.2 算法分析 568
13.8.3 编程实现 571
第14章 使用ImageMagick处理图像 577
14.1 ImageMagick简介 577
14.1.1 处理数字图像的利器——ImageMagick 577
14.1.2 ImageMagick的特性和功能 578
14.1.3 Magick++ 578
14.2 ImageMagick的使用配置 579
14.2.1 下载ImageMagick 579
14.2.2 编译ImageMagick 579
14.2.3 配置ImageMagick环境 580
14.3 Magick++基础 583
14.3.1 第一个Magick++程序 583
14.3.2 Magick++的核心——Image对象 584
14.3.3 Color对象 587
14.3.4 Geometry对象 589
14.4 初探Magick++ 591
14.4.1 图像的缩放 591
14.4.2 图像的旋转 595
14.4.3 剪裁图像 595
14.4.4 矩阵变换 598
14.4.5 图像的镜像和滚动 599
14.5 使用Magick++对图像进行增强处理 601
14.5.1 调整图像的基本属性 601
14.5.2 高斯平滑 604
14.5.3 锐化 605
14.5.4 去除图像的噪点 606
14.6 使用Magick++实现图像特效 609
14.6.1 运动模糊特效 609
14.6.2 黑洞特效 610
14.6.3 浮雕效果 612
14.6.4 油画效果 613
14.6.5 阴影效果 614
14.6.6 旋涡效果 616
14.7 其他Magick++用法 618
14.7.1 种子填充 619
14.7.2 批量处理 621
14.7.3 真彩色转256色 624
14.7.4 图像合成 626
14.7.5 ImageMagick的C语言接口 628
参考文献 634
1.1 数字图像处理概述 1
1.1.1 图像与数字图像 1
1.1.2 数字图像处理研究的内容 3
1.1.3 数字图像处理的应用 5
1.2 Visual C++概述 7
1.2.1 编程语言的奇迹 7
1.2.2 Visual C++简介 15
1.2.3 卓越的集成开发环境 18
1.3 在Visual C++中处理数字图像 21
1.3.1 位图和调色板 21
1.3.2 图形设备接口 22
1.3.3 OpenCV 25
1.3.4 ImageMagick 25
1.4 本章实例:利用Visual C++实现画图程序 25
1.4.1 实例预览 25
1.4.2 开始创建项目 26
1.4.3 完成实例编码 28
第2章 色彩系统 34
2.1 学习图像处理从认识色彩开始 34
2.1.1 什么是颜色 34
2.1.2 颜色的属性 36
2.1.3 光源能量分布图 37
2.2 CIE色度图 39
2.2.1 CIE色彩模型的建立 39
2.2.2 CIE色度图的理解 41
2.2.3 CIE色度图的后续发展 42
2.3 常用色彩空间 43
2.3.1 RGB颜色空间 43
2.3.2 CMY/CMYK颜色空间 44
2.3.3 HSV/HSB颜色空间 46
2.3.4 HSI/HSL颜色空间 47
2.3.5 Lab颜色空间 49
2.3.6 YUV/YCbCr颜色空间 49
2.4 色彩空间的转换方法 50
2.4.1 RGB转换到HSV的方法 51
2.4.2 RGB转换到HSI的方法 51
2.4.3 RGB转换到YUV的方法 53
2.4.4 RGB转换到YCbCr的方法 54
2.5 本章实例:Photoshop色彩编辑器的实现 55
2.5.1 需要解决的若干问题 55
2.5.2 开始创建项目 56
2.5.3 完成实例编码 58
第3章 图像文件的格式与编码 60
3.1 图像文件概述 60
3.1.1 图像文件 60
3.1.2 图像文件的一般结构 61
3.1.3 图像文件的常用参数 61
3.2 BMP文件格式 63
3.2.1 文件结构 63
3.2.2 文件头和信息头 63
3.2.3 主要参数 64
3.3 GIF文件格式 64
3.3.1 GIF格式简介 64
3.3.2 GIF文件结构 65
3.3.3 GIF文件块的结构 66
3.4 PNG文件格式 70
3.4.1 PNG格式简介 70
3.4.2 PNG文件结构 70
3.4.3 PNG中的关键数据块 72
3.5 离散余弦变换 73
3.5.1 基本概念及数学描述 73
3.5.2 离散余弦变换的意义 75
3.5.3 离散余弦变换的实现 79
3.6 图像的压缩编码 86
3.6.1 霍夫曼(Huffman)编码 87
3.6.3 LZW编码 96
3.6.3 行程编码 98
3.7 JPEG文件及其解码程序的实现 99
3.7.1 JPEG文件概述 99
3.7.2 JPEG的编解码原理 99
3.7.3 JPEG文件的格式 108
3.7.4 JPEG解码程序的实现 111
第4章 使用DIB处理数字图像 117
4.1 设备相关位图和设备无关位图 117
4.1.1 设备相关位图(DDB) 117
4.1.2 设备无关位图(DIB) 117
4.2 CBitmap类 118
4.2.1 创建DDB 118
4.2.2 CBitmap中的成员函数 120
4.2.3 应用DDB显示图像 121
4.2.4 应用DDB显示大图像 122
4.3 进一步了解DIB 130
4.3.1 DIB的结构 131
4.3.2 DIB信息段 131
4.3.3 位图数据 133
4.3.4 与DIB有关的函数 133
4.4 本章实例:DIB类的封装 135
4.4.1 类的抽象与设计 135
4.4.2 编写构造函数 138
4.4.3 DIB位图的显示 142
4.4.4 BMP文件的存储 143
第5章 使用GDI+处理数字图像 145
5.1 GDI+简介 145
5.1.1 GDI+概述 145
5.1.2 GDI+的结构 146
5.1.3 GDI+在Visual C++ 2005中的配置 146
5.2 GDI+基础 148
5.2.1 Graphics类 148
5.2.2 GDI+的基本数据类型 151
5.2.3 GDI+中的颜色 152
5.3 GDI+处理图像的基本方法 154
5.3.1 GDI+的图像类 154
5.3.2 创建图像对象 155
5.3.3 图像的显示和缩放 157
5.3.4 图像的基本处理方法 162
5.4 图像的剪裁 170
5.4.1 剪裁区域 170
5.4.2 GraphicsPath类 171
5.4.3 Region类 175
5.5 处理图像的色彩 180
5.5.1 ColorMatrix结构体 180
5.5.2 改变图像的透明度 181
5.5.3 将图像转换为灰度图 185
5.5.4 改变图像的亮度 187
5.5.5 改变图像的对比度 189
5.6 本章实例:播放GIF动画 191
5.6.1 播放原理分析 192
5.6.2 处理过程 192
5.6.3 具体实现 193
第6章 常见图像显示特效 198
6.1 显示特效概述 198
6.1.1 显示特效基础 198
6.1.2 显示特效过程 200
6.1.3 显示特效类 201
6.2 扫描显示特效 203
6.2.1 特效预览 203
6.2.2 基本原理和实现方法 204
6.2.3 编程实现 205
6.3 移动显示特效 206
6.3.1 特效预览 206
6.3.2 基本原理和实现方法 207
6.3.3 编程实现 208
6.4 百叶窗显示特效 209
6.4.1 特效预览 209
6.4.2 基本原理和实现方法 210
6.4.3 编程实现 211
6.5 栅条显示特效 212
6.5.1 特效预览 213
6.5.2 基本原理和实现方法 213
6.5.3 编程实现 214
6.6 马赛克显示特效 216
6.6.1 特效预览 216
6.6.2 基本原理和实现方法 216
6.6.3 编程实现 217
6.7 雨滴显示特效 219
6.7.1 特效预览 219
6.7.2 基本原理和实现方法 219
6.7.3 编程实现 220
6.8 本章实例:类似ACDSee的图像浏览工具 220
6.8.1 实例预览 221
6.8.2 概要设计 221
6.8.3 完成实例编码 226
第7章 图像的点运算 234
7.1 灰度直方图 234
7.1.1 灰度直方图 234
7.1.2 基本原理 236
7.1.3 编程实现 236
7.2 灰度线性变换 246
7.2.1 基本原理 246
7.2.2 编程实现 248
7.3 灰度非线性变换 251
7.3.1 灰度对数变换 251
7.3.2 灰度幂次变换 255
7.3.3 灰度指数变换 258
7.4 灰度阈值变换 260
7.4.1 基本原理 260
7.4.2 编程实现 261
7.5 灰度拉伸 263
7.5.1 基本原理 263
7.5.2 编程实现 265
7.6 灰度均衡 269
7.6.1 基本原理 270
7.6.2 编程实现 271
第8章 对图像进行几何变换 273
8.1 图像几何变换的基本理论 273
8.1.1 图像几何变换概述 273
8.1.2 图像几何变换的数学描述 276
8.2 图像的平移变换 276
8.2.1 效果预览 276
8.2.2 基本原理 277
8.2.3 编程实现 278
8.3 图像的镜像变换 282
8.3.1 效果预览 282
8.3.2 基本原理 283
8.3.3 编程实现 284
8.4 图像的转置 287
8.4.1 效果预览 288
8.4.2 基本原理 288
8.4.3 编程实现 288
8.5 图像的缩放 290
8.5.1 效果预览 290
8.5.2 基本原理 291
8.5.3 插值算法介绍 292
8.5.4 编程实现 295
8.6 图像的旋转 300
8.6.1 效果预览 300
8.6.2 基本原理 300
8.6.3 编程实现 304
8.7 使用GDI+实现图像的几何变换 310
8.7.1 GDI+的变换操作 311
8.7.2 平移 312
8.7.3 缩放 314
8.7.4 旋转 315
8.7.5 变换的组合 319
8.7.6 利用矩阵进行其他几何变化 321
第9章 图像的增强处理 325
9.1 图像的简单平滑 325
9.1.1 邻域处理的基本概念 325
9.1.2 图像的简单平滑原理 328
9.1.3 图像简单平滑的算法实现 329
9.2 图像的高斯平滑 333
9.2.1 平滑线性滤波器 333
9.2.2 高斯平滑的原理 334
9.2.3 高斯分布 335
9.2.4 高斯平滑的算法实现 337
9.3 图像的中值滤波 341
9.3.1 统计排序滤波器 341
9.3.2 图像中值滤波的原理 342
9.3.3 图像中值滤波的算法实现 344
9.4 图像的拉普拉斯锐化 350
9.4.1 图像的锐化 350
9.4.2 拉普拉斯锐化的原理 351
9.4.3 拉普拉斯锐化的算法实现 351
9.5 Sobel边缘细化 356
9.5.1 Sobel边缘细化的原理 356
9.5.2 Sobel边缘细化的编程实现 358
第10章 图像的边缘和轮廓 365
10.1 边缘检测 365
10.1.1 边缘检测的基本概念 365
10.1.2 常规边缘检测 366
10.1.3 带方向的边缘检测 372
10.1.4 拉普拉斯算子 376
10.2 Hough变换 383
10.2.1 平面坐标系的转换 383
10.2.2 Hough变换的思想 385
10.2.3 直线的Hough变换 385
10.2.4 圆的Hough变换 389
10.2.5 彩色图像的Hough变换 390
10.3 种子算法 396
10.3.1 算法介绍 396
10.3.2 编程实现 399
10.4 轮廓跟踪 403
10.4.1 区域表示方法 403
10.4.2 计算区域的面积和周长 411
10.4.3 单区域跟踪 412
10.4.4 多区域跟踪 415
第11章 图像的形态学处理 419
11.1 数学形态学 419
11.2 一些必要的概念和符号约定 419
11.3 图像的腐蚀 423
11.3.1 腐蚀原理 423
11.3.2 编程实现 426
11.4 图像的膨胀 431
11.4.1 膨胀原理 431
11.4.2 编程实现 434
11.5 腐蚀和膨胀的性质及应用 437
11.5.1 腐蚀和膨胀的代数性质 437
11.5.2 腐蚀和膨胀的应用 440
11.6 开运算和闭运算 446
11.6.1 开运算 446
11.6.2 闭运算 447
11.6.3 编程实现 449
11.6.4 开运算和闭运算的代数性质 450
11.7 图像形态学的其他运算 452
11.7.1 击中/不击中运算 452
11.7.2 细化处理 455
11.8 基于形态学分水岭的图像分割 459
11.8.1 基本概念 459
11.8.2 分水岭算法 459
11.8.3 编程实现分水岭分割 462
第12章 数字图像的加密与隐藏 471
12.1 混沌理论概述 471
12.1.1 混沌理论的发展 471
12.1.2 混沌的基本概念 473
12.1.3 混沌的度量与判定 475
12.2 几种典型的混沌系统举例 478
12.2.1 Logistic映射 478
12.2.2 Henon映射 481
12.2.3 Chebychev映射 481
12.3 数字图像的混沌加密简介 482
12.3.1 密码学与混沌密码学 482
12.3.2 图像混沌加密算法的分类 483
12.4 基于置乱的图像加密技术 484
12.4.1 数字图像与排列变换 484
12.4.2 利用Hilbert曲线置乱图像 485
12.4.3 利用Arnold变换置乱图像 492
12.4.4 数字图像置乱算法的评价 497
12.5 混沌在图像加密中的应用 497
12.5.1 以排序法为基础的混沌置乱 498
12.5.2 基于起始地址法的混沌置乱 508
12.5.3 基于灰度值变换的混沌加密 509
12.5.4 对图像进行混沌加密的评价 512
12.6 数字图像的隐藏技术 516
12.6.1 图像融合技术简介 516
12.6.2 基于混沌的图像隐藏算法 518
12.6.3 图形用户界面设计 519
12.6.4 编码实现 520
第13章 使用OpenCV处理数字图像 528
13.1 OpenCV简介 528
13.1.1 OpenCV的前世今生 528
13.1.2 OpenCV的诸多优点 529
13.1.3 OpenCV的命名规则 529
13.1.4 OpenCV的相关资源 530
13.1.5 OpenCV的安装与配置 530
13.2 OpenCV的结构 533
13.2.1 OpenCV的体系结构 534
13.2.2 OpenCV的函数结构 534
13.2.3 OpenCV的功能结构 535
13.2.4 OpenCV的数据结构 536
13.3 利用OpenCV显示图像 537
13.3.1 图像文件的载入与显示 538
13.3.2 图像文件的创建、保存和复制 539
13.4 应用OpenCV进行图像平滑 543
13.4.1 功能函数描述 543
13.4.2 交互界面设计 544
13.4.3 编码实现 544
13.5 应用OpenCV进行边缘检测 548
13.5.1 Canny准则 548
13.5.2 Canny算法简介 548
13.5.3 在OpenCV中使用Canny算法 549
13.6 应用OpenCV进行形态学处理 555
13.6.1 功能函数描述 555
13.6.2 交互界面设计 556
13.6.3 编码实现 556
13.7 在OpenCV中应用Hough变换 560
13.7.1 功能函数描述 560
13.7.2 交互界面设计 562
13.7.3 编码实现 562
13.8 静态人脸检测程序的实现 567
13.8.1 人脸检测概述 567
13.8.2 算法分析 568
13.8.3 编程实现 571
第14章 使用ImageMagick处理图像 577
14.1 ImageMagick简介 577
14.1.1 处理数字图像的利器——ImageMagick 577
14.1.2 ImageMagick的特性和功能 578
14.1.3 Magick++ 578
14.2 ImageMagick的使用配置 579
14.2.1 下载ImageMagick 579
14.2.2 编译ImageMagick 579
14.2.3 配置ImageMagick环境 580
14.3 Magick++基础 583
14.3.1 第一个Magick++程序 583
14.3.2 Magick++的核心——Image对象 584
14.3.3 Color对象 587
14.3.4 Geometry对象 589
14.4 初探Magick++ 591
14.4.1 图像的缩放 591
14.4.2 图像的旋转 595
14.4.3 剪裁图像 595
14.4.4 矩阵变换 598
14.4.5 图像的镜像和滚动 599
14.5 使用Magick++对图像进行增强处理 601
14.5.1 调整图像的基本属性 601
14.5.2 高斯平滑 604
14.5.3 锐化 605
14.5.4 去除图像的噪点 606
14.6 使用Magick++实现图像特效 609
14.6.1 运动模糊特效 609
14.6.2 黑洞特效 610
14.6.3 浮雕效果 612
14.6.4 油画效果 613
14.6.5 阴影效果 614
14.6.6 旋涡效果 616
14.7 其他Magick++用法 618
14.7.1 种子填充 619
14.7.2 批量处理 621
14.7.3 真彩色转256色 624
14.7.4 图像合成 626
14.7.5 ImageMagick的C语言接口 628
参考文献 634
数字图像处理原理与实践:基于Visual C++开发
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!