《Visual C++数字图像与图形处理》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:向世明编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2002
  • ISBN:7505374117
  • 页数:611 页
图书介绍:本书采用面向对象的方法介绍数字图像和图形处理的实用编程技术,共分两部分。第一部分以实用图像处理程序设计为主题,内容包括基本的图像空域处理方法、合成技术、几何变换技术、形态学操作、光栅操作、切换特技等。第一部分同时建立图像处理类层次体系结构。第二部分以标准的三维图形程序设计为主题,内容包括基元、次物体、几何拓扑、图形学变换、可见性测试、颜色缓冲、深度缓冲、光源、材质、光照明计算、着色等图形学基本技术。第二部分重点说明图形开发的基本过程。本书基于标准的图形技术开发路线,以类的形式重组了计算机图形学的基本知识。既能使读者从中体验图形开发的整个过程,也便于读者获取所需要的代码。本书作者多年来致力于计算机图形图像学的研究,本书特别适合于具有计算机图形学和数字图像处理基本知识的计算机软件开发人员和工程技术人员等阅读。前言我们生活在一个热衷于用图形和图像表达信息的时代。以图形开发和图像处理为基础的可视化技术通过大众媒体、计算机、网络等使人人都成为受益者。图形设计和图像处理技术迅猛地推动着传统行业的革新和新行业的萌芽,各个地区成千上万的人们,技术的和非技术的,都在从事与图形和图像相关的活动。现实的确是

第0章 介绍 1

0.1 谁是本书的读者 1

0.2 从本书获得什么 2

0.3 开发环境 2

0.4 本书的特点 2

0.5 本书的内容 4

0.6 本书是如何组织的 5

0.6.1 图像处理类层次结构 5

0.6.2 三维图形设计类体系 5

0.6.3 两个重要的头文件 5

0.6.4 实例名称及其分布结构 7

0.7 两套解释方法 9

0.8 如何列示代码 10

0.9 关于本书附带的CD-ROM 10

第1章 位图--通向图像处理和图形设计的桥梁 11

1.1 设备无关位图(DIB) 12

1.1.1 DIB的数据组织 12

1.1.2 操作DIB 14

1.2 处理DIB的CDib类 14

1.2.1 建立DisplayMode项目 14

1.2.2 CDib类 15

1.3 设备相关位图(DDB) 32

1.3.1 操作DDB 32

1.3.2 处理DDB的CDdb类 32

1.3.3 颜色量化 46

1.3.4 将DDB保存为DIB 53

1.4 响应用户对显示模式的设置 61

1.5 数据转换 68

1.5.1 问题是什么 68

1.5.3 将24位DDB数据转换为16位或32位DDB数据 69

1.5.2 数据转换CFormatDdbData类 69

1.5.4 将24位DDB数据转换为8位DDB数据 71

1.5.5 将32位DDB数据转换为8位、16位或24位DDB数据 78

第2章 图像点处理 82

2.1 图像处理头文件Img.h 83

2.2 改变图像亮度 88

2.2.1 建立Brightness项目 88

2.2.2 图像处理基类CImageProcess 92

2.2.3 图像点处理父类CImagePointProcess 96

2.2.4 亮度处理器CBrightnessProcess 97

2.2.5 改变亮度 101

2.2.6 更加简捷的数据回放机制--将数据捆绑为DDB 105

2.3 改变图像对比度 108

2.3.1 建立Contrast项目 108

2.3.2 对比度处理器CContrastProcess 110

2.3.3 改变图像对比度 114

2.4 图像灰度处理 117

2.4.1 灰度变换 117

2.4.2 直方图均衡化 118

2.4.3 直方图规定化 119

2.4.4 灰度概率统计法 119

2.4.5 建立Gray项目 120

2.4.6 灰度处理器CGrayProcess 122

2.4.7 修改灰度 138

2.5 着色图像 140

2.5.1 建立ImageRender项目 141

2.5.2 图像着色器CRenderProcess 142

2.5.3 颜色对话框 144

2.5.4 着色图像 145

2.6 曝光图像 147

2.6.1 建立ImageSoIanize项目 147

2.6.2 曝光处理器CSolarizationProcess 147

2.6.3 曝光图像 150

第3章 图像区域处理 151

3.1 卷积过滤器 151

3.1.1 卷积操作 151

3.1.2 图像模糊与低通过滤 152

3.1.3 高通过滤 152

3.1.4 边缘检测 153

3.1.5 建立Convolution项目 155

3.1.6 图像区域处理父类CImageAreaProcess 155

3.1.7 统一的卷积过滤器CConvolutionFilter 157

3.1.8 图像区域处理对话框 176

3.1.9 集成卷积过滤--图像线性处理 177

3.2 生成浮雕效果 182

3.2.1 建立Emboss项目 182

3.2.2 浮雕生成器CEmbossFilter 182

3.2.3 浮雕对话框 185

3.2.4 生成浮雕艺术效果 186

3.3 特殊检测方法 190

3.3.1 Sobel边缘检测和Kirsch边缘检测算法 190

3.3.2 建立SobelKirsch项目 191

3.3.3 特殊检测器CSpecialDetectionFilter 192

3.3.4 检测图像 198

3.4 中值滤波 200

3.4.1 建立MedianBlur项目 200

3.4.2 中值滤波器CMedianFilter 200

3.4.3 过滤图像 205

3.5 扩散图像 206

3.5.1 建立Diffuse项目 207

3.5.2 扩散过滤器CDiffuseFilter 207

3.5.3 扩散图像 209

3.6.1 建立Granulate项目 210

3.6.2 颗粒粗化过滤器GranulationFilter 210

3.6 颗粒粗化 210

3.6.3 粒化图像 215

第4章 数学形态学--开创数字图像处理的新篇章 217

4.1 数学形态学基本运算 217

4.1.1 膨胀、腐蚀、开启和闭合运算 218

4.1.2 拾取边界、形态浮雕、形态梯度、降低噪声、开合成和高帽变换 218

4.2 多值图像数学形态学在数字图像处理中的应用 219

4.2.1 建立MathMorph项目 219

4.2.2 数学形态学CMathMorphology类 219

4.2.3 数学形态学对话框 230

4.2.4 数学形态学图像处理 230

4.2.5 MathMorph VS Photoshop--使用导示与评注 234

4.3 二值图像数学形态学运算的实现 240

5.1 透明色匹配合成 242

5.1.1 建立Transparent项目 242

第5章 图像合成 242

5.1.2 图像合成父类CImageComposite 243

5.1.3 透明色匹配合成类CTransparentColorFilter 245

5.1.4 透明颜色对话框 248

5.1.5 合成图像--将小车、蝴蝶和背景进行匹配 249

5.2 代数运算 253

5.2.1 建立Algebra项目 253

5.2.2 代数运算器CAlgebraOperation 254

5.2.3 代数运算对话框 258

5.2.4 合成图像 259

5.3 逻辑运算 261

5.3.1 建立Logic项目 261

5.3.2 逻辑运算器CLogicOperation 262

5.3.3 逻辑运算对话框 264

5.3.4 合成图像 264

5.4 图像融合技术 266

5.5 融合图像 267

5.5.2 图像融合器CPixelBlend 268

5.5.1 建立Blend项目 268

5.5.3 融合对话框 273

5.5.4 合成图像 274

5.5.5 实现梦幻的合成效果--应用程序Blend使用导示 276

第6章 图像几何变换 279

6.1 缩放图像 279

6.1.1 近邻取样法 280

6.1.2 双线性内插法 280

6.1.3 三次卷积法 280

6.1.4 建立ImgScale项目 281

6.1.5 图像几何CImageGeometry 281

6.1.6 缩放变换对话框 290

6.1.7 缩放图像 290

6.2.1 建立ImgRotate项目 294

6.2.2 为CImageGeometry类添加旋转图像的功能 294

6.2 旋转图像 294

6.2.3 旋转变换对话框 301

6.2.4 旋转图像 301

6.3 镜像图像 305

6.3.1 建立ImgMirror项目 305

6.3.2 为CImageGeometry类添加镜像图像的功能 305

6.3.3 镜像图像 307

6.4 扭曲图像形状 309

6.4.1 建立ImgWarp项目 309

6.4.2 图像一般变换的父类CImageGeneralTransform 310

6.4.3 扭曲变换CImageWarp 313

6.4.4 图像扭曲对话框 316

6.4.5 扭曲图像 317

第7章 光栅操作 321

7.1 光栅操作 321

7.2.2 参数控制对话框 323

7.2.1 建立Raster项目 323

7.2 显示位于椭圆形(含圆形)区域内的图像 323

7.2.3 过滤像素 324

第8章 切换特技 330

8.1 常用的切换方式 330

8.2 滑入 335

8.2.1 建立ImageSlide项目 335

8.2.2 滑入方式对话框 335

8.2.3 具有内嵌效果的矩形CBorderRect 336

8.2.4 演示滑入效果 338

8.3 演示单向渐铺效果 346

8.4 演示菱形、圆形、椭圆形和帘窗式渐铺效果 351

8.5 演示推进效果 359

8.6 淡入淡出(一) 362

8.7 淡入淡出(二) 365

9.1 图形基元 374

第9章 图形基元(Ⅰ) 374

9.2 三维图形设计头文件Grphcs.h 375

9.3 直线基元 378

9.3.1 建立Line项目 379

9.3.2 直线基元CPLine--统一的Bresenham扫描转换程序 379

9.3.3 测试直线基元 383

9.4 三角形基元 385

9.4.1 Gouraud着色方法 385

9.4.2 三角形的扫描转换与填充 386

9.4.3 三角形基元CPTriangle--扫描转换三角形 387

9.4.4 测试三角形基元 399

9.5 几何构造 401

9.5.1 直线段 401

9.5.2 小面 401

9.5.3 四边形的细化 403

9.5.4 边的可见性 403

10.1 底层图形的绘制原理 404

第10章 三维图形技术 404

10.2 三维自由向量 406

10.3 三维几何变换、齐次变换矩阵 418

10.4 通用模板堆栈、矩阵堆栈的意义 431

10.5 次物体及其属性 437

10.5.1 次物体的基类CSubObject3d 437

10.5.2 几何顶点及其属性 438

10.5.3 边及其属性 441

10.5.4 小面及其属性 443

10.6 三维物体的建立 445

10.7 取景与视口变换 453

10.8 可见性测试 456

10.9 浮点颜色 459

10.10 物体的着色 467

10.11 立方体 479

10.12 着色立方体的线框、刻面和光滑模型 485

11.1 建立Light项目 489

第11章 光照处理 489

11.2 光源 490

11.2.1 光源属性 490

11.2.2 如何定义泛光光源和聚光光源 496

11.3 物体的材质 498

11.3.1 标准材质 498

11.3.2 如何定义标准材质 501

11.3.3 常用的金属和非金属材质的属性 502

11.4 基本光照模型 504

11.5 光照明计算 506

11.5.1 光照明计算 506

11.5.2 多光源照射系统 507

11.6 球体 515

11.6.1 球体的几何拓扑 515

11.6.2 球体 516

11.7.1 光照场景实例 524

11.7 光照场景 524

11.7.2 调整光源和材质的属性--编程导示 531

第12章 图形基元(Ⅱ) 535

12.1 z-buffer算法 535

12.2 建立Primitive项目 537

12.3 颜色缓冲器 537

12.4 深度缓冲器 542

12.5 基于颜色缓冲器和深度缓冲器的直线基元 545

12.6 基于颜色缓冲器和深度缓冲器的三角形基元 548

12.7 绘制相互交叠的三个四边形 560

12.8 引入图像处理技术 562

12.8.1 图形设计离不开图像处理技术 563

12.8.2 用图像作颜色缓冲区的背景 563

13.1 场景深度消隐 567

13.1.1 建立Depth项目 567

第13章 深度消隐 567

13.1.2 场景深度消隐与着色 568

13.1.3 着色简单场景 577

13.2 绘制复杂场景 580

13.2.1 建立Scene项目 580

13.2.2 着色场景 581

第14章 动画 587

14.1 动画生成技术 587

14.2 双缓存机制的工作原理 588

14.3 帧动画--熊熊燃烧的火焰 589

14.4 运动动画--模拟小球的非弹性碰撞 594

14.4.1 具有高光效果的虚拟球 595

14.4.2 具有高光效果的虚拟圆柱 598

14.4.3 砖块 600

14.4.4 模拟小球的非弹性碰撞 604

参考文献 611