当前位置:首页 > 工业技术
数字图像处理原理与实践  基于Visual C++开发
数字图像处理原理与实践  基于Visual C++开发

数字图像处理原理与实践 基于Visual C++开发PDF电子书下载

工业技术

  • 电子书积分:18 积分如何计算积分?
  • 作 者:左飞,万晋森,刘航著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121127762
  • 页数:636 页
图书介绍:本书全面系统地讲述了在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开始创建项目 58

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离散余弦变换的实现 86

3.6图像的压缩编码 86

3.6.1霍夫曼(Huffman)编码 87

3.6.2 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

返回顶部