- 定价:¥79.00
- POD价:¥79.00
- 评分:
(已有0条评价)
- 电子书:Visual C++数字图像处理技术详解(第2版)[按需印刷]
- 促销活动:
- 我要买:
- ·如此书原封面缺失,印刷将采用出版社授权的新封面;
- ·如电子文件出现问题,可能延长印制周期,我们将提前与您沟通
基本信息

【插图】

内容简介
计算机书籍
《Visual C++数字图像处理技术详解(第2版)》以数字图像处理技术为主线,全面介绍在Visual C++环境中进行数字图像处理程序设计的方法,内容涵盖了数字图像的几何变换、正交变换(特征提取)、增强、复原、重建、形态学处理、分割、匹配、压缩编码及特效处理等,并针对每种方法均给出基本原理、典型算法、Visual C++源码及综合应用实例。同时,本书还介绍了Visual C++与VTK、OpenCV等开发平台相结合进行数字图像处理的程序设计技术。
《Visual C++数字图像处理技术详解(第2版)》内容全面,深入浅出,层次分明,侧重知识的系统性、针对性和先进性,注重理论结合实践,培养工程应用能力。另外,本书还配有综合实例的完整源程序,便于在学习和实际开发中使用。
《Visual C++数字图像处理技术详解(第2版)》适合数字图像处理与分析、计算机视觉和多媒体信息处理等相关领域的研究人员、工程技术人员、教师和学生作为技术参考手册使用,也适合数字图像处理程序设计初学者作为教材使用。
目录
第2版前言
第1版前言
第1章 图像编程基础 1
1.1 Visual C++程序设计概述 1
1.1.1 C++与面向对象程序设计 1
1.1.2 Visual C++与Windows程序设计 2
1.2 数字图像处理概述 4
1.2.1 图像与数字图像 4
1.2.2 颜色与颜色空间 4
1.2.3 显示卡与调色板 7
1.2.4 数字图像文件格式 13
1.2.5 数字图像处理的研究内容 21
1.2.6 数字图像处理的应用领域 22
1.3 Visual C++处理数字图像的基本方法 23
1.3.1 使用DIB处理数字图像 23
1.3.2 使用自定义CDib类处理数字图像 28
1.3.3 使用GDI+处理数字图像 38
1.4 综合实例——图像浏览器 44
1.5 实践拓展 49
前言
数字图像处理(Digital Image Processing)是通过计算机对数字图像进行变换、增强、复原、分割及匹配等处理的方法和技术,在航空航天、生物医学工程、工业检测、机器人视觉、公安司法、导航制导、安保监控及文化艺术等诸多领域有着极为广泛的应用。数字图像处理技术的研究和应用离不开程序设计,Visual C++则是最有力、最常用的数字图像处理程序开发工具之一。2010年,我们出版了《Visual C++ 数字图像处理技术详解》一书,深受读者欢迎。为了更好地满足读者的需求,我们对该书进行了改版,更新和调整了如下内容。
1)将原书由14章调整为13章,删去了在实际工程项目中不太常用的Visual C++结合MATLAB编程的内容,使得内容更紧凑、更实用。
2)重新组织和更新了第1章的内容,使得初学者更容易入门。
3)完全重写了最后一章的综合应用实例系统,更新了车牌识别系统的技术方法,并新增了车型识别系统。
4)用Visual C++重写了SVD算法的实现函数(原为调用MATLAB实现)。
5)修改了图像几何畸变校正的程序,补充了详细的注释。
6)用艺术数码相框替换了第11章的综合实例。
7)根据软件最新版本更新了VTK和OpenCV安装、配置与使用的相关内容。
8)补充、更新了大部分实践拓展的内容,使其更接近工程实际。
9)根据读者反馈的意见,修订了第1版书中一些表述不够清楚的文字内容。
10)修正了第1版书中个别笔误之处,并重新润色了全书的文字。
11)将全部程序升级到Visual C++ 2010版本。
本书特点
本书修订时注意保留了第一版原有的特点。
1.技术全面,内容充实
本书全面涵盖了从图像的变换、增强、复原、重建、分割、匹配及形态学处理到压缩编码和特效处理等常用的数字图像处理技术和典型算法,同时还介绍了Visual C++与VTK和OpenCV相结合开发数字图像处理系统的技术。通过学习本书内容,读者可以全面掌握Visual C++数字图像处理的核心技术和外围相关技术。无论是数字图像处理与分析、计算机视觉和多媒体信息处理等领域的系统开发人员,还是大专院校从事相关领域教学和科研工作的师生,均能从本书中找到实用的相关知识。
2.循序渐进,深入浅出
为了方便初学者学习,本书从数字图像处理的基本概念讲起,逐步引入数字图像处理的专门理论和核心技术,再过渡到高级综合应用内容。对每项处理技术的讲解也是从基本原理开始,再给出算法描述,然后结合应用实例讲解开发过程。读者不需要具备数字图像处理知识就能循序渐进地掌握本书的内容,读者也可以根据自己的知识基础选择阅读本书的切入点和阅读内容的选取。
3.理论凝练,算法清晰
书摘
“万丈高楼平地起,盘龙卧虎高山顶……”20世纪50年代的一曲陇东红色歌谣唱遍了全国。如今,当你踏上这图像编程之旅时,想必也是带着万丈豪情,那就让我们也先从平地开始吧。本章主要介绍Visual C++程序设计和数字图像处理的基本概念和方法,为掌握Visual C++图像编程奠定必要的基础。
1.1Visual C++程序设计概述
Visual C++(简称VC)是Microsoft公司的Visual Studio开发工具箱中的一个C++程序开发环境,是一个面向对象的可视化集成开发系统,它不但具有程序框架自动生成、类管理灵活方便、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2、WinSock网络、3D控制界面。VC自诞生以来,凭借着C++语言的强大威力、开发环境的良好支持以及与Windows操作系统的血缘关系,一直是Windows操作系统环境下最主要的开发工具之一。VC在数字图像处理软件开发中也占据着极其重要的地位。
1.1.1 C++与面向对象程序设计
面向对象是计算机编程技术发展到一定阶段后的产物。早期的计算机编程采用的是面向过程的方法。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。而面向对象的方式通过将现实世界的事物抽象成对象,将现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模,以易于人类理解的方式对复杂的系统进行分析、设计与编程。同时,面向对象能有效提高编程的效率,通过封装技术和消息机制,可以像搭积木一样快速开发出一个全新的系统。
对象指的是类的集合。面向对象程序设计(OOP)将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
面向对象程序设计语言的鼻祖是Smalltalk语言,这种语言产生于20世纪70年代,但并未流行起来。人们对面向对象程序设计的认识多是从C++开始的。实际上,面向对象不只是一种程序设计方法,更是建立客观事物模型、分析复杂事物的一种思想方法。
面向对象程序设计方法具有抽象性、封装性、继承性和多态性4个特点。与传统的面向过程程序设计相比,其具有模块性好、代码重用率高、易于理解、易于维护、更适合大型应用程序的开发等优点。
面向对象技术在C++中最基本的体现是类的定义。在C++中,类其实就是一种用户自定义数据类型,可以用来表示任何用户希望表示的对象。类有点类似于C语言中的结构体,但与之不同的是类不仅含有数据成员,而且含有成员函数。此外,类还可以对其中的数据成员和成员函数设置访问权限,允许一些数据成员和成员函数在类外访问,另一些则不允许,也就是说这部分成员的作用域为类作用域。
1.1.2 Visual C++与Windows程序设计
传统的程序是按照函数或模块分层组织起来的,程序根据输入数据按照预先编制好的程序逐行运行,直到程序正常结束或异常退出。例如,在C语言中,main()函数处于其他函数之上,其行为好似一个通常意义上的管理者,将工作分配给一些高级子程序。依此类推,每个这样的高级子程序又操作管理着其他更低级的一些子程序。一切都是有序的,很容易用调试器从头到尾步调试完整个程序。这是大多数人曾学习过的编写程序的方式。因为程序的执行顺序会受到输入数据的影响,不妨称这种程序执行的方式为“数据驱动方式”。
Windows程序并非以完全的层次方式组织起来,它仍旧包含函数,但这些函数执行与否主要取决于外部事件,而非输入数据。也就是说,Windows程序设计是围绕着事件或消息产生的驱动来运行函数或过程的。这种程序运行的方式称为“事件驱动方式”。
所谓消息就是描述事件发生的信息。例如,按下鼠标键时,系统就会产生一条特定的消息,标识鼠标按键事件的发生。消息可以由外部事件产生,也可以由程序自身或其他程序内部的函数产生,还可以由Windows系统产生。这些消息都是由Windows系统来管理的,它会将特定的消息发送到相应的应用程序,然后由这个程序调用相应的事件处理程序进行处理。
Windows程序的执行过程取决于事件发生的顺序,程序的执行顺序是由顺序产生的消息驱动的,但是消息的产生往往并不要求有次序之分。程序员可以针对消息类型编写程序以处理接收到的消息,或者发出其他消息以驱动其他程序,但不必预先确定消息产生的次序。
事件驱动编程方法对于编写交互式程序很有用处,用这种方法编写的程序避免了死板的操作模式,从而使用户能够按照自己的意愿采用灵活多变的操作形式。
用VC编写Windows程序,可以基于API(Application Programming Interface,应用程序编程接口)和MFC(Microsoft Foundation Classes,微软基础类库)两种方式实现。
1.API
Windows API是Windows操作系统提供的、可供开发人员调用的一套Windows核心函数,是通过DLL(Dynamic Link Library,动态链接库)实现的。Windows API是Windows编程的基础,任何支持Windows API的编程语言都可以用来开来Windows程序。但是,由于Windows API本身体系结构的复杂性,其中的API函数的内在机制和API函数之间的关系的复杂性,使得直接应用Windows API来开发程序比较困难,需要耗费大量的人力和物力,开发周期也较长。所以,当前许多编程环境不仅支持Windows API,还将这些API函数进行了封装,如Visual C++、Delphi、C++ Builder等都通过自己的函数、类库实现了Windows API的功能,但其实本质上还是最终转化为对Windows API的调用。
Windows API所提供的功能可以归为如下所述7类。