Visual C++数字图像处理(含光盘1张)
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 谢凤英,赵丹培主编
出 版 社: 电子工业出版社
出版时间: 2008-9-1字数: 715000版次: 1页数: 524印刷时间: 2008/09/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121067488包装: 平装编辑推荐
作为一门实用而综合性的边缘学科,图像处理技术研究的内容主要包括图像变换、图像增强与复原、图像分割、图像的配准以及运动图像分析等。本书将以实践为导向,以实用为目标来介绍这些重要的数字图像处理技术,在介绍数字图像处理技术基础理论及算法原理的同时,重点详细地介绍如何用Visual C++编程实现这些典型及常用算法,并结合实际应用,介绍作者所在实验室近年来在研究中总结出来的一些经典案例,尽量做到理论、应用与实际编程的紧密结合,使读者掌握用Visual C++进行图像处理编程的基本方法和技巧。
基础性:简单而全面地介绍了图像处理技术中各主要研究内容的理论基础。
实用性:以理论和编程实践相结合的方式介绍了图像处理技术的大部分常用算法。
便捷性:所有算法都在基于MFC的应用程序框架下用C++编程实现,存放在本书随附的光盘中。这些代码模块性强,读拿拿来即可使用。
时代性:本书由多年从事数字图像处理数学和科研工作的北航中心近年来的课题研究,内容新颖,反映了当前图像处理技术的发展及时代的需求。
内容简介
本书配合图像处理专业理论性书籍的内容,从程序设计角度介绍了各种图像处理技术的典型算法及在VC++环境下的代码实现,并通过典型案例的介绍将各种图像处理技术集成起来。全书内容共分10章,分别介绍了基础知识)包括颜色表、色彩空间、设备相关位图、设备无关位图及ImgCenterDib类的实现)、图像的灰度变换、图像的几何变换、图像的变换域处理、图像增强处理、图像分割、图像复原、图像的形态学处理、运动图像分析及其应用、图像配准及典型案例、算法实现等。
本书以实践为导向,以实用为目标,来介绍这些重要的数字图像处理技术,同时详细地介绍如何用Visual C++编程实现这些典型及常用算法,并结合实际应用案例,使读者掌握用Visual C++进行图像处理编程的基本方法和技巧。
本书适合入门图像处理技术的初学者阅读,也适合作为正在研究数字图像处理的研究人员的参考书,还适合作为在校大学生及研究生的参考书。
作者简介
谢凤英,北京航空航天大学图像处理中心骨干教师,从事数字图像处理课程本科和研究生教学6年。先后承担或参加了包括三项国家自然基金在内的多项课题研究工作,在国内外期刊会议发表论文十余篇,具有丰富的教学实践经验和深厚的学术理论水平。曾获得北京市青年科技优秀论文、全国信息处理学术会议优秀论文和北航蓝天(教学)新星等奖励。
目录
第1章 Visual C++数字图像编程基础
1.1 图像、颜色表和色彩空间
1.1.1 图像
1.1.2 图像的矩阵表示
1.1.3 颜色表
1.1.4 彩色空间
1.1.5 灰度图像和彩色图像
1.2 BMP文件结构及其存取
1.2.1 BMP文件结构
1.2.2 BMP图像文件的读写
1.2.3 BMP图像位图数据的访问
1.2.4 灰度图像的颜色表
1.3 GDI对象及GDI位图
1.3.1 从资源中装入GDI位图
1.3.2 对位图进行伸缩处理
1.4 设备无关位图(DIB)
1.4.1 调色板
1.4.2 DIB访问函数
1.4.3 面向过程的DIB的读写及访问
1.4.4 面向对象的DIB的读写及访问——ImgCenterDib类
1.4.5 使用ImgCenterDib进行图像可视化编程
1.5 面向对象的图像处理算法实现
1.5.1 特效显示类SpecialEffectShow的定义
1.5.2 图像的扫描显示
1.5.3 图像的滑动显示
1.5.4 图像的渐进显示
1.5.5 图像的马赛克显示
1.6 本章小结
第2章 图像的灰度变换
2.1 灰度变换类(GrayTrans)
2.1.1 灰度变换类(GrayTrans)的定义
2.1.2 GrayTrans类的构造函数和析构函数
2.1.3 彩色和灰度格式间的转换
2.2 灰度的线性变换
2.2.1 负相变换
2.2.2 二值化和阈值处理
2.2.3 分段线性变换
2.3 灰度的非线性变换
2.3.1 对数函数非线性变换
2.3.2 指数函数非线性变换
2.4 灰度直方图
2.4.1 直方图类(Histogram)
2.4.2 编程实现直方图的绘制
2.4.3 直方图均衡
2.5 本章小结
第3章 图像的几何变换
3.1 几何校正与几何变换
3.2 几何变换类(GeometryTrans)
3.2.1 几何变换类(GeometryTrans)的定义
3.2.2 GeometryTrans类的构造函数和析构函数
3.3 图像的平移
3.4 图像的转置
3.5 图像的镜像变换
3.6 图像的插值算法
3.7 图像的缩放
3.8 图像的旋转
3.8.1 简单角度的旋转
3.8.2 任意角度的旋转
3.9 本章小结
第4章 图像的变换域处理
4.1 傅里叶变换
4.1.1 傅里叶变换的理论基础
4.1.2 二维离散傅里叶变换的性质
4.1.3 快速傅里叶变换(FFT)
4.1.4 快速傅里叶变换类(Transform_FFT)
4.1.5 Transform_FFT类的实现
4.1.6 傅里叶变换在图像处理中的应用
4.2 离散余弦变换
4.2.1 基础理论
4.2.2 离散余弦变换类(Transform_DCT)的定义
4.2.3 离散余弦变换类(Transform_DCT)的实现
4.2.4 离散余弦变换的实验结果
4.3 图像的小波变换及其应用
4.3.1 小波变换的基本理论
4.3.2 尺度函数与小波
4.3.3 Mallat算法与塔式分解
4.3.4 图像的多分辨分解与重建
4.3.5 小波变换类的定义
4.3.6 小波变换类的实现
4.3.7 小波在图像去噪中的应用
4.4 本章小结
第5章 图像增强处理
5.1 图像增强类
5.1.1 图像增强类的定义
5.1.2 CImgEnhance类的构造函数和析构函数
5.2 图像中的噪声模型
5.2.1 噪声来源
5.2.2 编程实现噪声添加
5.2.3 编程实现信噪比的计算
5.3 图像灰度修正
5.3.1 灰度校正
5.3.2 其他灰度修正方法
5.4 图像的平滑
5.4.1 邻域平均法
5.4.2 加权平均
5.4.3 选择式掩模平滑
5.4.4 中值滤波
5.5 图像的锐化
5.5.1 梯度锐化
5.5.2 拉普拉斯掩模锐化
5.6 本章小结
第6章 图像分割
6.1 图像分割类(ImgSegment)
6.1.1 ImgSegment类的定义
6.1.2 ImgSegment类的构造函数和析构函数
6.2 阈值分割
6.2.1 阈值分割原理
6.2.2 最大方差阈值分割
6.2.3 交互式阈值分割
6.3 边缘检测
6.3.1 边缘检测原理
6.3.2 常用边缘算子
6.3.3 自定义模板边缘
6.4 生长算法
6.4.1 区域生长
6.4.2 轮廓提取和边界跟踪
6.5 Hough变换
6.6 本章小结
第7章 图像复原
7.1 建立图像退化模型
7.1.1 图像的退化模型
7.1.2 连续的退化模型
7.1.3 离散的退化模型
7.2 运动模糊图像复原的基本原理
7.2.1 运动模糊图像形成过程的描述
7.2.2 匀速直线运动模糊的退化模型
7.2.3 匀速直线运动的点扩散函数参数确定
7.3 典型的运动模糊图像复原方法
7.3.1 图像恢复类的定义
7.3.2 ImageRestoreExt类构造函数与析构函数
7.3.3 逆滤波
7.3.4 维纳滤波
7.3.5 振铃效应的抑制
7.4 其他恢复方法
7.4.1 投影恢复法
7.4.2 Richardson-Lucy算法
7.4.3 几种恢复方法的性能比较
7.5 图像复原质量评价
7.5.1 有参照图像质量评价
7.5.2 无参照图像质量评价
7.6 本章小结
第8章 图像的形态学处理
8.1 数学形态学类(Morphology)
8.1.1 Morphology类的定义
8.1.2 构造函数和析构函数
8.2 二值数学形态学
8.2.1 二值数学形态学的相关概念
8.2.2 结构元素输入函数
8.2.3 二值腐蚀和膨胀
8.2.4 二值开运算和闭运算
8.2.5 二值形态学边界
8.2.6 击中击不中变换与细化算法
8.3 灰值形态学
8.3.1 灰值形态学的相关概念
8.3.2 灰值腐蚀和膨胀
8.3.3 灰值开运算和闭运算
8.3.4 灰值形态学梯度
8.3.5 Top-Hat变换
8.4 水域分割
8.4.1 水域分割原理
8.4.2 水域分割类(Watershed)
8.4.3 Watershed类的实现
8.4.4 水域分割函数的调用
8.5 本章小结
第9章 运动图像分析及其应用
9.1 运动图像分析涉及的基本问题
9.1.1 运动图像分析
9.1.2 运动的分类
9.1.3 运动的表达
9.2 频域运动估计方法
9.2.1 归一化相位相关方法
9.2.2 基于相位差的运动估计方法
9.3 运动目标检测与跟踪
9.3.1 静止背景下的运动目标检测
9.3.2 动态背景下的运动目标检测
9.3.3 基于Mean Shift 的运动目标跟踪方法
9.4 运动分析在电视跟踪测量系统中的典型应用
9.4.1 电视跟踪测量系统的基本工作原理
9.4.2 目标的提取与跟踪
9.4.3 简单场景的目标检测与跟踪
9.4.4 复杂场景下的金字塔模板匹配跟踪方法
9.5 本章小结
第10章 图像配准
10.1 图像配准的定义
10.2 图像配准类(Register)
10.2.1 Register类的定义
10.2.2 Register类的构造函数和析构函数
10.2.3 Register类输入数据的接口函数
10.3 模板匹配法
10.4 基于Harris角点特征的图像配准
10.4.1 Harris角点检测及其算法实现
10.4.2 基于奇异值分解的角点匹配及其算法实现
10.5 基于相位相关的图像配准
10.6 本章小结
参考文献
书摘插图
第1章 Visual C++数字图像编程基础
1.1图像、颜色表和色彩空间
1.1.1图像
组成数字图像的基本单位是像素(Pixel),也就是说,数字图像是像素的集合。如图1-1所示,图中每个格点代表一个像素,该图是一个白色背景下包含灰色矩形的图像。
数字图像通常存放在计算机的外存储器设备中,例如硬盘、光盘等,在需要进行显示和处理时才被调入内存的数组中。从本质上讲,图像数据在计算机内存或硬盘中是以字符型数据存在的,这与其他整型数据或者浮点型数据没有任何区别,都是一种数字表达符号,当把它在计算机屏幕上显示出来时,才是我们人眼看到的真正有意义的数字图像。普通的显示器屏幕也是由许多点(像素)构成的,显示时,电子枪每次从左到右、从上到下进行扫描,为每个像素着色,利用人眼的视觉暂留效应就可以显示出一屏完整的图像。比如,我们常说的屏幕分辨率为1024×768,刷新率为80Hz,意思是说屏幕上每行像素为1024个,共768行,而且每秒重复扫描80次。目前的显示设备的刷新率都在80Hz以上,一般屏幕刷新频率大于80Hz时,人眼感受不到屏幕刷新而产生的闪烁,这种显示器被称为位映像设备。所谓位映像,即是指一个二维的像素矩阵,而位图就是采用位映像方法显示和存储的图像。一幅图像的显示就是将图像的像素映射到屏幕的像素上并显示一定的颜色。
图1-1所示是一个灰度图像的例子,当一幅图像的像素由彩色表示时就是我们通常所说的彩色图像了。对于彩色图像的表达,将在调色板和彩色空间两部分内容中谈到。
1.1.2图像的矩阵表示
数字图像数据可以用矩阵来表示,因此可以采用矩阵理论和矩阵算法对数字图像进行分析和处理。最典型的例子是灰度图像,如图1-2所示。灰度图像的像素数据就是一个矩阵,矩阵的行对应图像的高(单位为像素),矩阵的列对应图像的宽(单位为像素),矩阵的元素对应图像的像素,矩阵元素的值就是像素的灰度值。
……