专业综合课程设计任务书学生姓名:专业班级:指导教师:所在学院:信息工程学院题目:图像同态滤波增强处理程序设计初始条件:(1)提供实验室机房及其 matlab 软件;(2)数字图像处理的基本理论学习。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):(1)掌握图像同态滤波处理的基本原理,利用 matlab 设计程序完成以下功能;(2)选择一幅 256 级的灰度图像;(3)该图像被乘性噪声所污染,得到污染后的图像;(4)对污染后的图像作 Fourier 变换,得到频谱图像;(5)设计同态滤波器对频谱图像进行同态滤波处理;(6)对同态滤波处理后的结果图像作逆 Fourier,得到增强后的滤波结果,显示结果图,并对结果进行分析比较;(7)要求阅读相关参考文献不少于 5 篇;(8)根据课程设计有关规范,按时、独立完成课程设计说明书。
时间安排:(1) 布置课程设计任务,查阅资料,确定方案四天;(2) 进行编程设计一周;(3) 完成课程设计报告书三天;指导老师签名:年月日系主任(负责老师)签名:年月日目录摘要 (I)1 MATLAB的简介及应用 (1)1.1 MATLAB简介 (1)1.3 MATLAB特点 (2)2 设计目的 (4)3 同态滤波器设计原理 (4)3.1 基本概念 (4)3.2 同态信号处理 (4)3.3 相乘信号的同态滤波处理 (5)4 用同态滤波技术进行图像增强处理 (7)4.1 简单的图像形成模型和特性 (7)4.2 同态滤波改善图像的数学模型 (7)4.3 同态滤波函数的确定 (9)5 同态滤波器程序及MATLAB软件仿真 (10)5.1 同态滤波器程序设计 (10)5.2 仿真结果图 (11)6 心得体会 (12)参考文献 (13)摘要在图像采集过程中,由于实际环境中成像条件的限制,造成图像的背景光照不均匀,当照度不均匀时,图像上对应照度暗的部分,其细节就较难分辨。
为了消除数字图像中的照度不均匀性(即图像增强),本报告对数字图像的照度不均匀校正技术(即图像增强处理技术)进行了分析,分析了这些方法在计算误差上的内在原因,并在此基础上研究了基于同态滤波的数字图像照度不均匀校正技术。
该技术兼顾了数字图像的频域和空域,使得采用本方法校正后的图像既消除了不足照度的影响而又不损失图像的细节。
结果表明:经处理后的图像,局部对比度增强效果明显,较好地保持了图像的原始面貌,取得了预期的理想滤波效果。
该方法能有效恢复不均匀光照背景,为实际图像处理应用提供了有效的前期处理。
关键词:同态滤波;图像增强;光照不均匀1 MATLAB的简介及应用1.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple 并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
1.2 MATLAB应用MATLAB 产品族可以用来进行以下各种工作:●数值分析●数值和符号计算●工程与科学绘图●控制系统的设计与仿真●数字图像处理技术●数字信号处理技术●通讯系统设计与仿真●财务与金融工程MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。
1.3 MATLAB特点●此高级语言可用于技术计算●此开发环境可对代码、文件和数据进行管理●交互式工具可以按迭代的方式探查、设计及求解问题●数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等●二维和三维图形函数可用于可视化数据●各种工具可用于构建自定义的图形用户界面●各种函数可将基于MATLAB的算法与外部应用程序和语言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成[2]●不支持大写输入,内核仅仅支持小写1.4 MATLAB的优势(1)友好的工作平台和编程环境MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采的的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++ 。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
2 设计目的1、通过课程设计把自己在大学中所学的知识应用到实践当中。
2、深入了解利用Matlab设计FIR数字滤波器的基本方法。
3、在课程设计的过程中掌握程序编译及软件设计的基本方法。
4、提高自己对于新知识的学习能力及进行实际操作的能力。
5、锻炼自己通过网络及各种资料解决实际问题的能力。
3 同态滤波器设计原理3.1 基本概念(1)叠加性信号:信号为两个或多个信号的和的形式。
(2)相乘信号:信号为两个或多个分量的成绩,如图像信号、衰落的传输信道中的信号等。
(3)卷积信号:信号为两个或多个信号的卷积,如语音信号,地震信号等。
(4)同态系统:同态系统是服从广义叠加原理、在代数运算上可用输入和输出的矢量空间之间的线性变换来表征的非线性系统。
3.2 同态信号处理在信号处理中,常需从带有噪声的信号中提取原始信号。
一般用滤波处理方法滤除或削弱噪声干扰以及其他不需要的信号。
对于叠加性组合信号,可用线性滤波器将它们分离开。
对于实用中常见的非叠加性组合信号(如乘积性信号和褶积性信号),靠线性滤波器分离或处理这些信号分量往往是无效的,这时应采用非线性滤波,即要用同态滤波处理系统进行信号处理。
在输入输出运算相同的情况下,同态系统可分为相乘信号的同态滤波处理和褶积信号的同态滤波处理两种。
在许多实际问题中,信号为两个或多个分量的乘积(如在有衰落的传输信道中,衰落效应可看作一个缓变分量和传输信号相乘)。
对这类相乘信号,如用线性系统来分离信号各成分或单独地改善某一信号成分往往是无效的。
但利用相乘信号的同态滤波处理,就可以取得较好的滤波效果。
在多径或混响环境中进行通信、定位或记录,产生失真的效果可以看成是干扰与所需信号的褶积,对这类信号可用褶积信号的同态滤波处理。
在语音、图像、雷达、声呐、地震勘探以及生物医学工程等领域中,同态信号处理获得广泛的应用。
3.3 相乘信号的同态滤波处理一个相乘信号可以(以两个信号相乘形式为例)用分量),(y x i 及分量),(y x r 来表示,即),(),(),(y x r y x i y x f ⨯= (3.1) 因为傅里叶变换是线性变换,所以对于式( )中具有相乘关系的两个分量无法分开。
也就是说,{}{}{}),(),(),(y x r F y x i F y x f F ⨯≠ (3.2) 式中F 代表傅里叶变换。
如果首先把式(3.1)的两边取对数就可以把式中的乘性分量变成加性分量,再加以进一步处理,即),(ln ),(ln ),(ln ),(y x r y x i y x f y x Z +== (3.3) 此后对式(3.3)再进行傅里叶变换,得{}{}),(ln ),(y x f F y x z F ={}{}),(ln ),(ln y x r F y x i F += (3.4)令{}),().(y x z F v u Z ={}),(ln ),(y x i F v u I = (3.5){}),(ln ),(y x r F v u R = 则 ),(),(),(v u R v u I v u Z += (3.6) 如果用一个传递函数为),(v u H的滤波器来处理),(v u Z ,那么如前面所讨论的那样,有:),().(),(v u Z v u H v u S ⨯= ),(),(),(),(v u R v u H v u I v u H ⨯+⨯= (3.7) 处理后将式(3.6)再施以傅里叶变换,则{}),(),(1v u S F y x s -={}{}),(),(),(),(11v u R v u H F v u I v u H F ⨯+⨯=-- (3.8) 令{}),(),(),(1'v u I v u H F y x i ⨯=-(3.9){}),(),(),(1'v u R v u H F y x r ⨯=-式(3.7)可以写成下式:),(),(),(''y x r y x i y x s += (3.10)因为),(y x z 是),(y x f 的对数,为了得到所要求的信号函数),(y x g ,还要进行一次相反的元算,即也就是通过指数运算这一和对数运算相反的元算来设置算法,使之变为所需的形式,即{}),(exp ),(y x s y x g ={}),(),(exp ''y x r y x i +={}{}),(exp ),(exp ''y x r y x i ⨯= (3.11) 令{}),(exp ),('0y x i y x i = (3.12){}),(exp ),('0y x r y x r = 则),(),(),(00y x r y x i y x g ⨯= (3.13) 式中),(0y x i 和),(0y x r 是处理后的两个信号的分量。