前言
数字图像处理研究利用计算机进行图像信息处理的基本理论和方法,已在航空航天、生物医学工程、工业检测、机器人视觉、公安司法、导航制导、安保监控、文化艺术等诸多领域得到非常广泛的应用。
数字图像处理技术的研究和应用离不开程序设计,Visual C++则是最强大、最常用的数字图像处理程序开发工具之一。本书全面地介绍了在Visual C++环境下进行数字图像处理的程序设计方法,内容涵盖了数字图像处理的理论基础和常用数字图像处理方法的Visual C++实现技术,各种方法均给出基本原理、典型算法及其完整的Visual C++源码。每种算法的源代码均以函数形式给出,读者在理解了相关代码的功能后可以直接用这些代码组合成各种功能更强大的数字图像处理应用程序。
本书特点
本书主要有以下特点。
1. 技术全面,内容充实
本书全面涵盖了从图像的变换、增强、复原、重建、分割、匹配、形态学处理到压缩编码和特效处理等常用的数字图像处理技术和典型算法,同时还介绍了Visual C++与VTK、OpenCV和MATLAB相结合开发数字图像处理系统的技术。通过阅读本书读者可以全面掌握Visual C++数字图像处理的核心技术和周边相关技术。
2. 循序渐进,深入浅出
为了方便初学者学习,本书从数字图像处理的基本概念讲起,逐步引入数字图像处理的专门理论和核心技术,再过渡到高级综合应用。对每项处理技术的讲解也是从基本原理开始,再给出算法描述,然后结合应用实例讲解开发过程。读者不需要具备数字图像处理知识就能循序渐进地掌握本书的内容,也可以根据自己的知识基础选择阅读本书时的切入点和对内容进行取舍。
3. 理论凝练,算法清晰
本书在清楚讲述问题的情况下,对繁杂的数字图像处理理论做了大量的简化和凝练工作,这体现在最基本的原理、最核心的计算公式和清晰简明的算法描述。读者不必再花大量的精力从理论堆里去发掘算法步骤,可以直接从给出的算法步骤开始编程实践。
4. 代码完整,讲解详尽
在介绍完基本原理和算法步骤之后,本书对每个算法、每章的实例和最后的车牌识别系统综合应用案例都给出了完整的源代码,对开发步骤做了详尽的讲解,并对关键的代码部分进行了详细的注释说明,每段代码都给出了运行结果。读者可以参照基本原理、算法描述和运行结果去阅读源程序,以便加深理解。
5. 结合应用,注重实践
书中提供了大量的综合应用实例,结合实例详细透析了数字图像处理系统的开发过程,每章都从工程实践的角度总结了作者多年来在数字图像处理领域的开发经验、常见的问题及其解决方法。
主要内容
本书分为4篇,共15章。各章的主要内容如下。
第一篇 数字图像处理编程基础
第1章:主要介绍数字图像处理的基本知识,包括颜色模式、调色板、常用数字图像文件格式以及使用Visual C++对数字图像进行处理的基础方法。如果读者没有接触过数字图像处理技术,本章可以引导读者进入数字图像处理领域。
第二篇 数字图像处理核心技术
第2章:介绍了图像几何变换的方法,包括图像的平移、旋转、镜像、转置、缩放以及插值算法等。通过阅读本章读者可以学习到图像编辑中最为常用的图像变换技术。
第3章:介绍了图像正交变换的方法,包括离散傅里叶变换、离散余弦变换、离散沃尔什变换、K-L变换、SVD变换和小波变换等。通过阅读本章读者可以学习到图像分析中常用的特征提取技术。
第4章:介绍了图像增强方法,包括灰度变换增强、直方图增强、图像平滑和锐化、频域增强和彩色增强等,通过阅读本章读者可以学习到改进图像视觉效果或突出图像某个区域的图像处理技术。
第5章:介绍了图像复原方法,包括线性复原、非线性复原、盲目复原与几何复原等。通过阅读本章读者可以学习到数码相机及图像处理软件中常用的将模糊或几何畸变的图像进行还原的技术。
第6章:介绍了图像重建方法,包括傅里叶反投影重建、卷积反投影重建、代数重建、超分辨率重建以及三维图像的面绘制和体绘制算法,同时还介绍了图像重建常用的VTK工具包。通过阅读本章读者可以学习到医学图像处理、虚拟现实和数字地球中常用的根据投影数据重建图像的技术。
第7章:介绍了图像形态学处理方法,包括二值图像和灰度图像的腐蚀、膨胀、开运算和闭运算、击中击不中变换、骨架提取、灰值形态学梯度计算和Top-Hat变换等。通过阅读本章读者可以学习到数学形态学的基本理论及其用于数字图像处理的技术。
第8章:介绍了图像分割方法,包括传统的边缘检测法、阈值分割法、边界分割法、区域生长法、彩色分割法和新兴的分水岭分割法与水平集分割法。通过阅读本章读者可以学习到图像分析中常用的目标提取技术。
第9章:介绍了图像匹配方法,包括基于像素的归一化积相关灰度匹配和序贯相似性检测法匹配以及基于特征的不变矩匹配、距离变换匹配及最小均方误差匹配等。通过阅读本章读者可以学习到图像识别、计算机视觉和多源图像融合中常用的图像匹配技术。
第三篇 数字图像媒体处理技术
第10章:介绍了图像压缩编码方法,包括Huffman编码、Shannon-Fano编码、算术编码、游程编码、线性预测编码以及有损预测编码和变换编码等,特别介绍了目前广泛使用的JPEG 2000编码。通过阅读本章读者可以学习到Internet、移动通信、数字图书馆以及电子商务等领域广泛使用的图像压缩技术。
第11章:介绍了图像显示特效和滤镜效果的实现方法,包括扫描、移动、百叶窗、栅条、马赛克和雨滴等显示特效以及底片、雕刻、黑白、雾化和素描等滤镜效果。通过阅读本章读者可以学习到数码照片处理软件中常用的图像特效处理技术。
第四篇 数字图像编程高级应用
第12章:介绍了Visual C++结合OpenCV编程的方法,包括OpenCV的安装与编程环境配置、OpenCV编程风格、数据结构、常用函数及使用方法等。通过阅读本章读者可以学习到在Visual C++中利用OpenCV源码库开发数字图像处理系统的技术。
第13章:介绍了Visual C++结合MATLAB编程的方法,包括利用MATLAB和Simulink进行数字图像处理的基本方法以及Visual C++通过MATLAB引擎、MCC和MATCOM调用MATLAB的基本方法。通过阅读本章读者可以学习到Visual C++和MATLAB混合编程技术。
第14章:给出了一个完整的车牌识别系统综合应用实例,包括车牌定位、倾斜校正、字符分割、牌号识别等全过程。通过阅读本章读者能从工程应用的角度加深对数字图像处理技术的认识和理解。
读者对象
• 数字图像处理系统开发人员
• 计算机视觉系统开发人员
• 多媒体信息处理系统开发人员
• 数字图像处理相关领域科研人员
• 数字图像处理编程爱好者
• Visual C++程序设计爱好者
• 高等院校的教师和学生
本书光盘
• 程序源代码:包含书中各章实例和综合应用实例的完整源代码及测试用的图像文件,读者可以按照书中的说明对程序源代码进行编译和运行。
• 开源软件包:包含最新版本的VTK、CMAKE和OpenCV开源软件包,读者可以直接安装,按照书中相应章节的介绍使用。
本书主要由刘海波、沈晶、郭耸编著,参加本书编著和资料整理的还有李平科、于化龙、宋锋、林玉娥、朱长明、王勇、石磊、周长建、马梦成、刘胜宇、吴艳霞、刘萌、梁晓丽、宫洁、宁士勇、陆志鹏、沈祺等。李平科和郭耸完成了全书的统稿工作,刘海波和沈晶审校了全书。本书得到中央高校基本科研业务费专项资金资助,在编写过程中得到了海军潜艇学院宋一兵高工和哈尔滨工程大学郭方方副教授的大力支持,在此特别表示感谢!
感谢您选择了本书,希望我们的努力对您的工作和学习有所帮助,也希望您把对本书的意见和建议告诉我们。
作者:gdz_zero@126.com
编辑:sdl@hzbook.com
作者
2010年5月