数字图像去雾算法研究毕业论文.doc

上传人:laozhun 文档编号:3944237 上传时间:2023-03-28 格式:DOC 页数:55 大小:2.92MB
返回 下载 相关 举报
数字图像去雾算法研究毕业论文.doc_第1页
第1页 / 共55页
数字图像去雾算法研究毕业论文.doc_第2页
第2页 / 共55页
数字图像去雾算法研究毕业论文.doc_第3页
第3页 / 共55页
数字图像去雾算法研究毕业论文.doc_第4页
第4页 / 共55页
数字图像去雾算法研究毕业论文.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《数字图像去雾算法研究毕业论文.doc》由会员分享,可在线阅读,更多相关《数字图像去雾算法研究毕业论文.doc(55页珍藏版)》请在三一办公上搜索。

1、毕业论文(设计) 题 目 数字图像去雾算法研究 学生姓名 学 号 院 系 计算机与软件学院专 业 计算机科学与技术指导教师 声 明本人郑重声明:1、 持以“求实、创新”的科学精神从事研究工作。2、 本论文是我个人在导师指导下进行的研究工作和取得的研究成果。3、 本论文中除引文外,所有实验、数据和有关材料均是真实的。4、 本论文中除引文和致谢的内容外,没有抄袭其他人或其他机构已经发表或撰写过的研究成果。5、 其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。作者签名: 日 期: 目 录1 引言12 图像去雾算法12.1 基于光照分离模型的图像去雾算法22.1.1 算法概述22.1.2

2、同态滤波32.1.3 模型简介32.1.4 偏微分方程求解42.2 基于直方图均衡化的图像去雾算法72.2.1 算法概述72.2.2 直方图修正技术的基础72.2.3 直方图的均衡化82.2.4 直方图均衡化的算法步骤92.3 基于暗原色先验的图像去雾算法102.3.1 算法概述102.3.2 已有雾成像模型102.3.2 暗原色先验112.3.3 暗原色先验去雾算法分析113 数字图像去雾系统的设计123.1 开发工具MATLAB123.2系统设计133.3 菜单设计133.4 模块设计143.5 界面设计143.5.1 界面设计原则143.5.2 界面设计步骤144 数字图像去雾系统的实现

3、194.1图片打开模块194.2基于光照分离模型的图像去雾模块194.2.1 同态滤波及光照分离代码194.2.2 去雾效果图214.2.3 结果分析214.3基于直方图均衡化的图像去雾模块224.3.1 代码224.3.2 去雾效果图234.3.3 结果分析234.4基于暗原色先验的图像去雾模块244.4.1代码244.4.2 去雾效果图254.4.3 结果分析264.5图片保存模块265 系统运行效果275.1 整体界面运行效果275.2 文件打开运行效果275.2 基于光照分离模型图像去雾效果图285.3直方图均衡化图像去雾效果图295.4基于暗原色先验的去雾效果图305.5文件保存界面

4、效果图306 结论31数字图像去雾算法研究 摘要:图像去雾是指运用一定的模型或算法,对已经雾化的图像进行处理,达到还原图像本来特征的过程。本文介绍了三种数字图像去雾的算法,包括基于光照分离模型的数字图像去雾算法、基于直方图均衡化的数字图像去雾算法以及基于暗原色先验的数字图像去雾算法。在MATLAB平台下设计并实现了一个数字图像去雾处理系统,能够运用上述算法实现图像去雾,效果较好。 关键词: 图像去雾;光照分离模型;直方图均衡化;暗原色先验1 引言 户外景物的图像通常会因为大气中的混浊的媒介(比如分子,水滴等)而降质,雾、霭、蒸气都因大气吸收或散射造成此类现象。照相机接收到景物反射过来的光线经过

5、了衰减,此外,得到的光线还混合有大气光(经大气分子反射的周围环境的光线)。降质的图像的对比度和颜色的保真度有所下降,造成模糊不清的现象,称之为图像雾化。在雾化情况下,由于场景的能见度降低,图像中目标对比度和颜色等特征被削弱,图像的清晰度和真实度降低,因此需要消除雾化对图像的影响,从图像处理及物理模型等角度出发,都可以可以实现图像不同程度上的去雾化。1 本文介绍了光照分离模型的图像去雾算法、直方图均衡化图像去雾算法以及基于暗影通道的图像去雾算法,并在此基础上设计了一个可以采用上述三种不同算法实现图像去雾的系统,能够较好的实现一些常规的简单的雾化图像的去雾化。本文的结构如下:1为引言,介绍图像去雾

6、的概念,去雾研究的现状,目前存在的问题以及本文采用的三种图像去雾方法;2为图像去雾算法,详细的介绍三种图像去雾算法;3为数字图像去雾系统的的设计,包括系统设计、菜单设计、模块设计、界面设计;4为数字图像去雾系统的实现,包括开发工具,各个模块的实现及其代码,菜单制作以及模块整合;5为系统运行效果,包括截图以及文字描述;6为结束语。2 图像去雾算法图像去雾是指运用一定的算法或模型,对已经雾化的图像进行处理,达到还原图像本来特征的过程。目前对图像去雾的处理方法主要分为两类:雾化图像增强和雾化图像复原。对于每一类方法,按照去雾方法的相似性可以进一步归纳为不同的子类方法:基于图像处理的图像增强方法分为全

7、局化的图像增强和局部化的图像增强;基于物理模型的雾化图像复原方法则包括基于偏微分方程的雾化图像复原、基于深度关系的雾化图像复原和基于先验信息的雾化图像复原。2目前对图像去雾的处理方法主要分为两类:雾化图像增强和雾化图像复原。对于每一类方法,按照去雾方法的相似性可以进一步归纳为不同的子类方法:基于图像处理的图像增强方法分为全局化的图像增强和局部化的图像增强;基于物理模型的雾化图像复原方法则包括基于偏微分方程的雾化图像复原、基于深度关系的雾化图像复原和基于先验信息的雾化图像复原。图1详细介绍了图像去雾算法的分类.图像去雾算法雾化图像增强雾化图像复原 全局化增强局部化增 强基于深度关系基于先验信息基

8、于偏微分图2.1 图像去雾算法分类一般来说,以上两种方法都可以不同程度的实现图像的去雾化,但是由于科技发展水平所限,目前两种方法都存在不同程度上的缺陷。雾化图像的增强方法不考虑图像降质原因,适用范围广,能有效提高雾化图像的对比度。突出图像的细节。改善图像的视觉效果,但对于突出部分的信息可能造成一定的损失。雾化图像的复原是研究雾化图像降质的物理过程,并建立雾化图像退化模型,反演退化过程,补偿退化过程造成的失真,以便获得未经干扰退化的无雾图像或无雾图像的最优估计值,从而改善雾化图像质量,这种方法针对性强,得到的去雾效果自然,一般不会有信息损失,但是模型中参数的估计存在一定的难度,容易出错。2.1

9、基于光照分离模型的图像去雾算法2.1.1 算法概述通常,图像可以分为是光照分量和反射分量的乘积,光照分量L取决于照射源,而反射分量R取决于物体的内在不变的属性,如物体表面反射系数和表面法线等。因此,光照预处理的问题可以转化为给定图像I用来求解R的问题。然而,从输入图像中估计光照分量和反射分量是一个病态问题。为了解决该问题,通常假设物体表面光照变化缓慢,而反射分量的变化剧烈。因此,有学者采用同态滤波的方式,通过求图像I的平滑来进行估计光照分量L,从而做到对两个分量进行分离。在本节中,将着重介绍本文使用的光照分离模型,使用同态滤波的方式来估计光照分量L。这种方法在人脸识别领域有一定应用,可以有效消

10、除光线、阴雨、雾等天气及环境带来的人脸图像质量降低的影响,并且可以做到物体局部细节的保持。2.1.2 同态滤波 在进行光照分离前,我们使用同态滤波来得到光照分量L。在生活中会得到这样的图像,它的动态范围很大,而我们感兴趣部分的灰度又很暗,图像细节无法辨认,采用一般的灰度级线性变换是不行的。同态滤波属于图像频率域处理范畴,其作用是对图像灰度范围进行调整,通过消除图像上照明不均的问题,增强暗区的图像细节,同时又不损伤亮区的图像细节。图像的灰度由照射分量和反射分量合成。反射分量反映图象内容,随图像细节不同在空间上作快速变化。照射分量在空间上通常均具有缓慢变化的性质。照射分量的频谱落在空间低频区域,反

11、射分量的频谱落在空间高频区域。一般景物的图像可以由照明函数和反射函数的乘积表示。表示景物的照明,与景物无关;包含景物的细节,与照明无关。由于二者相乘无法变换到频域再分开处理,故如下处理:(1)取对数,则(2)进行傅立叶变换,则(3)压缩i(x,y)分量的变化范围,削弱I (u,v),增强r(x,y)分量的对比度,提升R (u,v),增强细节。确定H(u,v)。(4) (5) 根据不同的图像特性和需要,选用不用的H(u,v),可以得到满意的结果,细节对比度差,分辨不清的图像用同态滤波进行处理后,图像画面亮度比较均匀,细节得以增强。2.1.3 模型简介 在估计出光照分量后,进而计算物体的内在反射分

12、量: (2.1)光照分量通过最小化下面的优化方程来进行求解: (2.2)其中,等式右边的第一项为数据项,表示L和I要具有相似性;第二项作为平衡约束的正则项。参数为权系数,用于控制两项的权重。利用欧拉-拉格朗日方程求解,可以得到: (2.3)这个偏微分方程可以通过多种方式求解。通过以上正则化的过程,光照分量L被估计出来后,进而可以求得光照不变的反射分量。2.1.4 偏微分方程求解如果一个微分方程中出现的未知函数只含一个自变量,这个方程叫做常微分方程,也简称微分方程;如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就

13、是偏微分方程。偏微分方程在图像处理中的应用是一个比较新的课题.由于它可以准确对图像建模,从而很好的解决了图像处理中许多复杂的问题.如今,偏微分方程已广泛的应用于图像处理的各个方面.例如求图像信息的最优估计等。自从计算机问世以来,偏微分方程的数值解法得到很大发展,因此,可以说偏微分方程数值解法本身就是一个庞大的项目,解偏微分方程的方法有很多,比如超松弛迭代法(SOR),雅克比迭代法,高斯-赛德尔迭代法,考虑到各种算法的迭代效率和迭代精度,本系统选用高斯-塞德尔迭代法进行光照模型分离的迭代运算。下面介绍下高斯-塞德尔迭代法解偏微分方程的过程。元线性方程组 (2.4) 写成矩阵形式为。若将式(2.4

14、)中每个方程的留在方程左边,其余各项移到方程右边;方程两边除以则得到下列同解方程组:(2.5)记,构造迭代形式 (2.6)或 (2.7) 迭代计算式(2.7)称为简单迭代或雅可比迭代。任取初始向量 ,由式(2.7)可得到迭代向量序列。在雅可比迭代中,用的值代入方程(2.4)中计算出的值,的计算公式是 (2.8)事实上,在计算前,已经得到的值,不妨将已算出的分量直接代入迭代式中,及时使用最新计算出的分量值。因此的计算公式可改为: (2.9)即用向量计算出的值,用向量计算出的值,用向量计算出的值,这种迭代格式称为高斯塞德尔迭代。对于方程组,如果由它构造高斯-塞德尔迭代和雅可比迭代都收敛,那么,多数

15、情况下高斯塞德尔迭代比雅可比迭代的收敛效果要好,但是情况并非总是如此。构造方程组的高斯-塞德尔迭代格式的步骤与雅可比类似,设将式(2.4)中每个方程的留在方程的左边,其余各项都移到方程的右边;方程两边除以,得到下列同解方程组: (2.10)记,对方程组对角线以上的取第步迭代的数值,对角线以下的取第步迭代的数值,构造高斯塞德尔迭代形式: (2.11)高斯塞德尔迭代矩阵:设 (2.12)写成等价矩阵表达式:构造迭代形式:有 (2.13)则高斯-塞德尔迭代式为 (2.14) (2.15)称为高斯-塞德尔迭代矩阵。2.2 基于直方图均衡化的图像去雾算法2.2.1 算法概述直方图均衡化算法是图像增强空域

16、法中的最常用、最重要的算法之一。它以概率理论作基础,运用灰度点运算来实现直方图的变换,从而达到图像增强的目的。本文介绍一种基于累积分布函数变换法为基础的直方图修正法。它可以通过对直方图进行均匀化修正,可使图像的灰度间距增大或灰度均匀分布、增大反差,使图像的细节变得清晰。32.2.2 直方图修正技术的基础一幅给定图像的灰度级经归一化处理后,分布在范围内。这时可以对0,1区间内的任一个r值进行如下变换: (2.16) 也就是说,通过上述变换,每个原始图像的像素值r都对应产生一个s值。变换函数应该满足下列条件:(1) 在区间内,是单值单调增加;(2)对于,有这里第一个条件保证了图像的灰度级西欧哪个白

17、到黑的次序不变和反变换函数的存在。第二个条件则保证了映射变化后的像素灰度值在允许的范围内。从s到r的反变换可用式(2.17)表示,同样也满足上述两个条件 (2.17) 由概率论理论可知,若已知随机变量的概率密度为,而随机变量是的函数,即,的概率密度为,所以可以由求出。因为是单调增加的,由数学分析可知,它的反函数也是单调函数。在这种情况下,当,且仅当时发生,所以可以求得随即变量的分布函数为: (2.18)对式(2.18)两边求导,即可得到随即变量的分布密度函数 (2.19) 由式(2.19)可知,对于连续情况,设和分别表示原图像和变换后图像的灰度级概率密度函数。根据概率论的知识,在已知和变换函数

18、时,反变换函数也是单调增长,则可由式(2.19)求出。2.2.3 直方图的均衡化对于连续图像,设r和s分别表示被增强图像和变换后图像的灰度。为了简单,在下面的讨论中,假定所有像素的灰度已被归一化了,就是说,当时,表示黑色;当时,表示白色;变换函数与原图像概率密度函数之间的关系为: (2.20) 式中:r为积分变量。式(2.20)的右边可以看作是r的累积分布函数(CDF),因为CDF是r的函数,并单调地从0增加到1,所以这一变换函数满足了前面所述的关于在内单值单调增加,对于,有的两个条件。由于累积分布函数是r的函数,并且单调的从0增加到1,所以这个变换函数满足对式(2.20)中的r求导,则: (

19、2.21) 再把结果带入式(2.21),则 (2.22) 由以上推到可见,变换后的变量s的定义域内的概率密度是均匀分布的。由此可见,用r累积分布函数作为变换函数可产生一幅灰度级分布具有均匀概率密度的图像。其结果扩展了像素取值的动态范围。上面的修正方法是以连续随机变量为基础进行讨论的。为了对图像进行数字处理,必须引入离散形式的公式。当灰度级是离散值的时候,可用频数近似代替概率值,即: (2.23) 式中,L是灰度级数;是取第k级灰度值的概率;是在图像中出现第k级灰度的次数;N是图像中像素数。通常把为得到均匀直方图的图像增强技术叫做直方图均衡化处理或直方图线性化处理。式(2.20)的直方图均衡化累

20、积分布函数的离散形式可由式(2.24)表示: (2.24) 其反变换为 (2.25) 2.2.4 直方图均衡化的算法步骤直方图均衡化的算法步骤如下:(1)列出原始图像和变换后图像的灰度级:I,j=0,1,L-1,其中L是灰度级的个数;(2)统计原图像各灰度级的像素个数;(3)计算原始图像直方图:,N为原始图像像素总个数;(4)计算累积直方图:;(5)利用灰度变换函数计算变换后的灰度值,并四舍五入:;(6)确定灰度变换关系,据此将原图像的灰度值修正为;(7)统计变换后各灰度级的像素个数;(8)计算变换后图像的直方图:2.3 基于暗原色先验的图像去雾算法2.3.1 算法概述暗原色先验(dark c

21、hannel prior)由何恺明等人首先提出。暗原色先验来自对户外无雾图像数据库的统计规律,它基于经观察得到的这么一个关键事实-绝大多数的户外无雾图像的每个局部区域都存在某些至少一个颜色通道的强度值很低的像素。在被雾干扰的图像里,这些暗像素的强度值会被大气中的白光成分所充斥而变得较高。因此,这些暗像素能够直接用来评估雾光的透射信息。利用这个先验建立的去雾模型,结合一个已有的雾成像模型和插值法抠图修复,我们可以得到高质量的去雾图像和很好的深度图。12.3.2 已有雾成像模型在计算机视觉和计算机图形中,下述方程所描述的雾图形成模型被广泛使用 (2.26) I是指观测到的图像的强度,J是景物光线的

22、强度,A是全球大气光成分,t用来描述光线通过媒介透射到照相机过程中没有被散射的部分,去雾的目标就是从I中复原J,A,t。方程右边的第一项J(x)t(x)叫做直接衰减项,第二项A(1-t(x)则是大气光成分。直接衰减项描述的是景物光线在透射媒介中经衰减后的部分,而大气光则是由前方散射引起的,会导致景物颜色的偏移。因为大气层可看成各向同性的,透射率t可表示为: (2.27) 表示大气的散射系数,该式表明景物光线是随着景物深度d按指数衰减的。雾图形成模型方程(2.26)意味着,在RGB色彩空间中,向量A,J(x),I(x)从几何学来看是共面的,它们的端点则是共线的,透射系数t是两条线段长度之比cr,

23、g,b,是颜色通道的指数。2.3.2 暗原色先验暗原色先验是通过对户外无雾图像的观察得出的:在绝大多数非天空的局部区域里,某一些像素总会有至少一个颜色通道具有很低的值。换言之,该区域光强度的最小值是个很小的数。用公式描述,对于一幅图像J,我们定义 (2.28) 代表J的某一个颜色通道,而是以x为中心的一块方形区域。我们观察得出,除了天空方位,的强度总是很低并且趋近于0。如果J是户外的无雾图像,我们把称为J的暗原色,并且把以上观察得出的经验性规律称为暗原色先验。造成暗原色中低通道值主要有三个因素:a)汽车、建筑物和城市中玻璃窗户的阴影,或者是树叶、树与岩石等自然景观的投影;b)色彩鲜艳的物体或表

24、面,在RGB的三个通道中有些通道的值很低(比如绿色的草地/树/植物,红色或黄色的花朵/叶子,或者蓝色的水面);c)颜色较暗的物体或者表面,例如灰暗色的树干和石头。总之,自然景物中到处都是阴影或者彩色,这些景物的图像的暗原色总是很灰暗的。2.3.3 暗原色先验去雾算法分析 (1) 估测透射率分布 我们首先假设大气光因子A是给定的进一步假定在一个局部区域的透射率是恒定不变的在方程(2.3.2)中使用取最小运算符得到: (2.29) 这样,在三个颜色通道中使用最小操作运算,我们得到: (2.30) 根据暗原色先验的规律,无雾自然图像的暗原色项应该是接近于0的。 (2.31) 总是正的,导致: (2.

25、32) 把方程(2.32)带入方程(2.30),我们可以简单地估算出透射率t: (2.33) (2) 复原物体光线 有了透射分布,我们可以通过方程(2.27)复原物体的原始图像。但当接近0的时候,直接衰减项也会接近0。直接复原得到的原始图像倾向于包含噪音。因此,我们把透射因子设定了一个下限。这意味着某些雾稠密的区域仍然保留着一定数量的雾。最终的复原通过下式实现: (2.34) (3) 估测大气光从前的大多数单一图像去雾方法当中,大气光成分A通常是从不透明的含雾的像素中测得。但在实际的图像中,最明亮的像素点有可能是一辆白色的汽车或者是白色的建筑物。我们可以通过暗原色来提高大气光的估测,我们利用它

26、自动地估测本文中引用的所有图像的大气光成分。3 数字图像去雾系统的设计3.1 开发工具MATLAB MATLAB是由美国Mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 Matlab和Mathematica、Maple并称为三大数学软件。它在数

27、学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。具有以下的特点:4(1) 语言简洁紧凑,使用方便灵活,库函数极其丰富。运算符丰富。 (2)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和 if语句),又有面向对象编程的特性。(3)程序限制不严格,程序设计自由度大。(4)MATLAB的图形功能强大。(5)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。(6)由于MAT

28、LAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。3.2系统设计 本系统实现了图像去雾功能。采用Matlab界面编程方法,设计了一个窗口,窗口中包含了五个个菜单,即文件打开菜单,基于光照分离模型的图像去雾菜单,基于直方图均衡化的图像去雾菜单,基于暗原色先验的图像去雾菜单以及文件保存模块。3.3 菜单设计菜单包括普通菜单和弹出式菜单,都在菜单编辑器中创建。PC平台上,默认情况下MATLAB图形窗口有一个顶层菜单,含有七个标准菜单选项:文件(File)、编辑(Edit)、显示(View)、插入(Insert)工具(Tools)、桌面(Desktop)、窗口(Windo

29、ws)、帮助(Help)。每个菜单项都有下拉菜单,标准菜单受界面MenuBar属性管理,该属性值取none或figure,取none时,图形窗不显示标准菜单及工具条,取figure时,图形窗显示标准菜单条,为了简洁,我们取属性值none,隐去标准菜单。Matlab提供uimenu命令创建用户定制菜单,其典型调用格式为:Hm=uimenu(H_parent,PropertyName,Property,.)其中,Hm为用户菜单句柄;H_parent为其父对象句柄;PropertyName及Property为二元对,分别为属性名及其属性值。在用户菜单中,属性Label及Callback是最重要的属性

30、,前者用于识别不同菜单项,后者用于产生相应动作,是菜单项发挥相应作用。创建程序如下:h_f=figure(1);Set(h_f,menubar,none) ; %清除原来窗口的菜单条h_menuf=unimenu(h_f,label,File); %创建菜单Fileh_menuo=unimenu(h_menuf,label,Open); %创建下拉菜单Openh_menus=unimenu(h_menuf,label,Save); %创建下拉菜单Saveh_menuf=unimenu(h_f,label,图像去雾); %创建菜单图像去雾每个菜单项都有callback回调函数,在创建好的菜单界面

31、中单击“callback”后面的“View”按钮,或在GUI界面中打开M文件编辑器都可以回调函数。53.4 模块设计本系统包含五个模块,文件打开模块,基于光照分离模型的图像去雾模块,基于直方图均衡化的图像去雾模块,基于暗原色先验的图像去雾模块以及文件保存模块。系统模块结构图如下:图像去雾处理系统保存暗原色先验直方图均衡化打开光照分离模型图3.1图像去雾系统模块图3.5 界面设计3.5.1 界面设计原则(1) 简单性(2) 一致性(3) 习常性(4) 其他因素考虑3.5.2 界面设计步骤(1) 利用界面编辑器,设计窗口初始位置和大小,添加所需控件;(2) 新建图形对象,对齐所有控件;(3) 设置

32、新建对象的属性;(4) 在产生的M文件中加入相应代码。 为了进一步加深理解,在此以文件菜单的制作为例进行说明。首先,在MATLAB的命令窗口(Command window)中运行guide指令,来打开Guide界面,如下: 图3.2 GUI界面 然后选择空模板(Blank GUI),点击确认,打开设计界面,如下: 图3.3 GUI设计界面 点击工具栏上的菜单编辑器(Menu Bar),打开菜单编辑器,如下: 图3.4 菜单编辑器界面 在Menu Bar中创建一个菜单项,命名为“文件”,如下: 图3.5 菜单项创建界面 在文件菜单下添加两个子菜单项,“打开”,“保存”,如下:图3.6 打开菜单创

33、建界面图3.7 保存菜单创建界面 保存界面之后,会产生一个对应的M文件,如下:图3.8 M文件生成界面 将生成的GUI命名为“image”,如下:图3.9 GUI文件模块界面生成4 数字图像去雾系统的实现4.1图片打开模块用于打开电脑中所要处理的图像。打开功能的代码如下:function m_file_open_Callback(hObject, eventdata, handles) %打开图像,打开命令对应的函数global B %声明全局变量H=*.bmp;*.jpg;*.gif;*.tif;*.tga; filename,pathname=uigetfile(H,请选择需要打开的图像)

34、; %跳出对话框file=strcat(pathname,filename); %生成完整的图像路径+图像名I=imread(file); %读取图像B = I ; %将打开的图像赋给全局变量Baxes(handles.axes1); %在该页面第二个坐标系显示imshow(I),title(源图像);4.2基于光照分离模型的图像去雾模块4.2.1 同态滤波及光照分离代码(1)同态滤波文件模块用于消除不均匀照度的影响,增强图像细节。function ReflectImage, LightImage = ASNorm(img, sigma, sz) if nargin 2 sz = 10; si

35、gma = 0.02;endif ndims(img) = 3 img = rgb2gray(img);end% 构造一个高斯滤波器f_high = 1.0;f_low = 0.4;% 得到一个高斯低通滤波器gauss_low_filter = fspecial(gaussian, sz sz, sigma);matsize = size(gauss_low_filter);% 由于同态滤波是要滤出高频部分,% 所以我们得把这个低通滤波器转换成一个高通滤波器.% f_high 和 f_low 是控制这个高通滤波器形态的参数.gauss_high_filter = zeros(matsize);

36、gauss_high_filter(ceil(matsize(1,1)/2) , ceil(matsize(1,2)/2) = 1.0;gauss_high_filter = f_high*gauss_high_filter - (f_high-f_low)*gauss_low_filter; % 利用对数变换将入射光和反射光部分分开log_img = log(double(img); % 将高斯高通滤波器与对数转换后的图象卷积high_log_part = imfilter(log_img, gauss_high_filter, symmetric, conv); % 由于被处理的图象是经过

37、对数变换的,我们再用幂变换将图象恢复过来high_part = exp(high_log_part);minv = min(min(high_part);maxv = max(max(high_part);% 得到的结果图象result1 = (high_part-minv)/(maxv-minv);result1 = im2uint8(mat2gray(result1);img = im2uint8(mat2gray(img);ReflectImage = imsubtract(img, result1);LightImage = result1;LightImage = double(Li

38、ghtImage);ReflectImage = double(ReflectImage);(2)本函数实现分离光照分量,提取反射分量对图像进行提取function LightImage = LR(image1)row,col,hei=size(image1);if hei = 1 row,col=size(image1); ReflectImage = zeros(row,col) ; LightImage = zeros(row,col) ; ReflectImage,LightImage = ASNorm(image1,0.02,10) ;else image_R = zeros(row

39、,col); image_G = zeros(row,col); image_B = zeros(row,col); image_R(:,:) = image1(:,:,1); image_G(:,:) = image1(:,:,2); image_B(:,:) = image1(:,:,3); ReflectImageR = zeros(row,col) ; LightImageR = zeros(row,col) ; ReflectImageR,LightImageR = ASNorm(image_R,0.02,10) ReflectImageG = zeros(row,col) ; Li

40、ghtImageG = zeros(row,col) ; ReflectImageG,LightImageG = ASNorm(image_G,0.02,10) ; ReflectImageB = zeros(row,col) ; LightImageB = zeros(row,col) ; ReflectImageB,LightImageB = ASNorm(image_B,0.02,10) ; LightImage = zeros(row,col,3) ; LightImage(:,:,1) =LightImageR(:,:) ; LightImage(:,:,2) =LightImageG(:,:) ; LightImage(:,:,3) =LightImageB(:,:) ; end;4.2.2 去雾效果图 基于光照分离模型的图像去雾效果图如下:图4.2 基于光照分离模型的图像去雾效果图4.2.3 结果分析 该算法是一种把频率过滤和灰度变换相结合的图像增强处理方法,也是一种把照明反射模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像质量的处理技术。该方法及其推广在彩色图像增强方面得到了广泛的应用。 优点:能去掉光照不均所产生的黑斑;能较好的保持图像的原始面貌。缺点:需要两次傅立叶变换,占用较大的运算空间。4.3基于直方图均

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号