MATLAB图像去雾霭算法及其实现

MATLAB图像去雾霭算法及其实现

摘要 雾霭等天气条件下获得的图像,具有图像不清晰,颜色失真等等一些图像退化的现象,直接影响了视觉系统的发挥。因此,为了有效的改善雾化图像的质量,降低雾霭等天气条件下造成户外系统成像的影响,对雾霭图像进行有效的去雾处理显得十分必要。

本设计提出了三种图像去雾算法,一种是基于光照分离模型的图像去雾算法;一种是基于直方图均衡化的图像去雾算法;还有一种是基于暗原色先验的图像去雾算法。并在MATLAB的基础上对现实生活的图像进行了去雾处理,最后对不同的方法的处理结果进行了简要的分析。

关键词:图像去雾 光照分离 直方图均衡化 暗原色先验

目 录

摘要 I

Abstract. II

目录

1绪论图像去雾霭算法及其实现 1

1.1研究背景及意义 1

1.2当前图像去雾霭技术发展现状及其趋势 2

1.3 本文的章节安排 2

1.4小结 3

2图像去雾霭基础理论 4

2.1雾霭的形成机理 4

2.2图像去雾算法 4

2.2.1图像增强技术 5

2.2.2图像复原技术 5

2.3基于图像增强的去雾霭算法 5

2.3.1同态滤波 6

2.3.2光照分离模型 7

2.3.3小结 11

2.4基于直方图均衡化的图像去雾算法 11

2.4.1直方图均衡化去雾原理 11

2.4.2直方图均衡化模型 12

2.4.3直方图均衡化的算法步骤 12

2.4.4小结 16

2.5基于图像复原的去雾霭方法 16

2.5.1暗原色先验去雾霭原理 16

2.5.2暗原色先验模型 16

2.5.3算法概述 17

2.5.4小结: 20

3实验结果 21

4总结与展望 22

附录1 光照分离代码 23

附录2 基于直方图均衡化的图像去雾代码 25

附录3 暗原色先验的去雾代码 27

参考文献 29

致谢 30

图像去雾霭算法及其实现

1绪论图像作为人类感知世界的主要视觉基础,是人类获取信息以及表达信息的重要方法。因此一些雾化图像十分有必要进行一些处理。在本设计的开头部分,这章讲述了图像去雾的一些研究背景以及意义,主要介绍了当前去雾的算法以及发展趋势。最后介绍了本文的主要工作内容。

1.1研究背景及意义

社会在不断的发展,各种高科技也在不断的更新 ,一年比一年的雾霾现象也比较严重了。近些年,在我国出现了比较频繁的、覆盖区域也比较广泛的雾霾天气。尤其是大陆南方等地区。近几年的空气质量逐步退化,一些恶劣天气也频繁出现,PM2.5值越来越引起人们的关注。在有雾天气下拍摄的图像,由于空气重混入了不少的浑浊杂质对光的吸收和散射产生了严重的影响,最终导致了图像模糊不清,给人一种不美观的第一感觉。上述视觉效果不好不仅仅只是针对图像成像而造成的影响,给判定目标会带来一定的麻烦。在图像、视频的获取与空气质量息息相关,然而随着工业化的进程,大气污染日益严峻。大气雾霭环境下图像成像欠佳,使得图像后续处理,如目标识别等任务难度增加;在卫星遥感监测、公路监控等各方面都会造成极大的影响。本设计以公路监控为例,由于大雾弥漫,道路的能见度很低,驾驶员通过视觉获得道路的信息往往很模糊,进一步造成一些不必要的事故发生。由此可见,对雾天图像进行快速有效的处理显得十分必要。

v2-508ce58f772f3564284c0c8e867f37a6_b.jpg

图1四川师范大学成龙校区某角落

由图1可以很明显的看出,受浓雾的影响,图像的质量退化严重,许多地方显得十分模糊,基本无法识别和提取景物的特征。因此对图像去雾技术的研究,恢复图像等信息的处理显得十分重要。

1.2当前图像去雾霭技术发展现状及其趋势

图像去雾技术是通过一定的方法和手段,去除图像中雾的干扰,恢复出有效的图像信息及其特征,并能得到一种良好的视觉效果的图像。

图像去雾技术经历了一个漫长的过程。1992年,L.Bissonnette等人针对雾和雨天气下所做的图像进行了研究;随后John P.Oakley等人针对雾霭天气下所拍摄的彩色图像进行了去雾处理,并取得了一定的成果。目前图像去雾技术的主流是向基于模型与基于非模型的两个角度展开的。其中,基于非模型的方法可以简单的归纳为图像对比度增强的问题。比较典型和常用的图像增强方法包括直方图均衡化算法、曲波变换、小波方法、以及Retinex算法等。每种算法针对不同的场合和对象都取得不错的效果去雾效果,但是每种方法都有不同程度的不足,所以不断的引入新方法和新手段,才能使得该领域保持旺盛的生命力。

1.3 本文的章节安排

本文主要对以下几个方面进行研究和分析:

第一章绪论部分首先论述了图像去雾的研究背景及其发展趋势。

第二章详细的论述了图像去雾霭的基础理论,包括图像的增强及其复原。以及运用直方图均衡化、光照分离模型、暗原色先验的方法来处理雾化图像。

并对去雾结果进行了简要的分析。

第三章给出实验结果,对不同方法处理雾化图像进行了对比,并得出了相关的结论。

第四章对本文进行了简要的总结。

以上方法,本设计采用的直方图均衡算法是最基本的,是研究暗原色先验方法做对比时的参照;同态滤波算法在图像增强方面也取得了很大的进展;曲波变换能够很好的增强曲线边缘;暗原色先验算法是一种描述颜色恒常性的模型,具有使图像更加清晰化,图像特征更加明显,因此在图像增强方面暗原色先验要优于。

1.4小结

本设计围绕图像增强和图像复原去雾两个方面,对图像去雾技术涉及的内容进行了简单的介绍。根据雾天图像去雾处理的情况,采用不同的方法对雾化图像进行处理,并给出了各种去雾算法的实验结果图、不同方法的结果对比。采用主观和客观评价相结合的方式对图像质量进行评估。

2图像去雾霭基础理论

为了实现雾化图像的去雾处理,本章首先对雾霭的形成过程出发进行了简单的阐述,研究了图像去雾算法的分类主要包括图像增强技术以及图像复原技术。

2.1雾霭的形成机理

雾实际上是由悬浮颗粒在大气中的微小液滴构成的气溶胶,常呈现乳白色,其底部位于地球表面,所以也可以看做是接近地面的云。霭其实跟雾区别不大,它的一种解释是轻雾,多呈现灰白色,与雾的颜色十分接近。

雾霭作为一种灾害性的天气,会引起室外能见度降低,一些高速公路也会因此封锁道路,航空运输方面也会因此延误航班等等交通工具无法正常的使用。另外,人们长期停留在雾霭天气的环境中,人体会吸入不少的悬浮颗粒等有害物质,对人们的身体健康有着极大的影响,会对人体造成肺病或者流感等其他疾病。

2.2图像去雾算法

图像去雾算法可以分为两大类:一类是图像增强;另一类是图像复原。本设计将下面两个小节中逐步介绍上述的两种技术。图2介绍了图像去雾算法的分类:

图像去雾算法

雾化图像复原

雾化图像增强

全局化增强

基于先验信息

基于深度关系

基于偏微分

局部化增强

图2图像去雾算法分类

2.2.1图像增强技术

为了改善视觉效果或者便于人们对图像的判别和分析,根据图像的特征采取简单的改善方法或者加强特征的措施叫做图像增强。图像增强可分为两大类:频率域法和空间域法。空间域处理主要包括:点处理,模块处理即领域处理。频率域处理主要包括:高、低通滤波、同态滤波等等。

图像增强可分为两大类:频率域法和空间域法。空间域处理主要包括:点处理,模块处理即领域处理。频率域处理主要包括:高、低通滤波、同态滤波等等。

2.2.2图像复原技术

从广义上讲,图像复原是一个求逆问题,逆问题经常存在非唯一解,甚至无解。图像复原的目的是将所观测到的退化图像恢复到退化前的原始图像,这种恢复过程在很多图像处理中的应用十分重要。目前应用最广泛的图像复原技术是Lucf-Richardson,随着迭代次数的增加,最终将会收敛在泊松统计的最大似然解处。为了更好的对图像复原的理解,图3为图像复原的流程图:

图像复原

滤波器

g(x,y) f(x,y)

图3 图像复原流程图

其中g(x,y)为降质图像函数,f(x,y)为真实图像函数。

在图像复原技术可以分为以下几类:

1)在给定退化模型条件下,分为无约束和有约束两大类。

2)根据是否需要外界干预,分为自动和交互两大类。

3)根据处理所在的域,分为频率域和空间域。

2.3基于图像增强的去雾霭算法

在本设计中将采用同态滤波的方式,通过求图像I的平滑来进行估计光照分量L,从而做到对两个分量进行分离。下面的论述中将着重介绍光照分离模型,使用同态滤波的方式来估计光照分量L。这种方法在人脸识别领域有一定的应用,可以有效地消除光,雨、雾等天气和环境减少影响人脸图像的质量,并且可以实现本地对象保持的细节。

通常,图像I(x,y)可以由光照分量L(x,y)和反射分量R(x,y)的乘积,光照分量L取决于照射源,而反射分量R取决于物体的内在不变的属性,如物体表面反射系数和表面法线等。因此光照预处理的问题可以转化为给定图像I用来解决R的问题。

2.3.1同态滤波

在进行光照分离前,我们使用同态滤波来得到光照分量L。在生活中会得到这样的图像,它的动态范围很大,而我们感兴趣部分的灰度又很暗,图像细节无法辨认,采用一般的灰度级线性变换是不行的。同态滤波属于图像频率域处理范畴,其作用是对图像灰度范围进行调整,通过消除图像上照明不均的问题,增强暗区的图像细节,同时又不损伤亮区的图像细节。

图像的灰度由照射分量和反射分量合成。反射分量反映图象内容,随图像细节不同在空间上作快速变化。照射分量在空间上通常均具有缓慢变化的性质。照射分量的频谱落在空间低频区域,反射分量的频谱落在空间高频区域。

2.3.2光照分离模型

在估计出光照分量后,进行计算物体内在的反射分量:R=I/L.

本设计将利用全变分模型来估计反射分量。全变分模型是一种经典的图像恢复方法,在图像中主要用于从观测图像中恢复图像真实,具有模型简单、需要优化的参数少的特点。

令l=logL,r=logR,i=logI则有:

i=l+r; (2-6)

l是在空间上平滑的,在整个图像中变化缓慢;r在一个局部小邻域内是一个常量,r在边缘区域则变化激烈。反射系数r可以通过一个简单的值来进行分割;l值大于r,并且接近于图像的亮度值。

min∫︱▽l(x,y)︱dxdy ; l∈BV(Ω) (2-7)

s.t.‖i-l‖^2≤σ ; (2-8)

对于公式(2-7),公式(2-8)其中σ为一个常数,Ω是函数支撑集,范围覆盖整个图像。上述式的含义是光照l在空间上是平滑的,同时反射系数可以通过一个简单的阀值分割出来。可以将上述式子改写成:

E=min[∫▽l+λ(l-i)^2];l∈BV(Ω) (2-9)

其中Ω是图像区域,λ是非负实数。即可求得光照l的估计。

这种算法的一般步骤如下:

1)给定图像I,取得对数得到i=logI;

2)去初始值l0=i,根据上述公式求解全变模型。求得l。

3)对光照l做指数运算,得到L。

4)再根据公式求取反射系数模型R。

基于光照分离模型图像去雾流程图如图5:

构造一个高斯滤波器

求取光照分量L

对图像进行灰度处理

输出图像I

输入图像PS

建立全变分模型

求取反射分量R

图5光照分离模型图像去雾流程图

运用matlab软件编写程序代码获取下面效果图:

v2-7be45022b92677b9f43437fe735a7a3e_b.jpg

图6原始图像

v2-ec560e67755beb328827c9f49dd5d217_b.jpg

图7高通滤波器

v2-22b6343c01e6f8838117b2654a0087a8_b.jpg

图8原始直方图灰度值

v2-9293df3e59ce7b9f1138928f529f8ec3_b.jpg

图9均衡后的直方图

v2-037fbedcfb7f552cfee5a3f2a3638a04_b.jpg

图10光照分离后的图像

2.3.3小结

从上述图像中可以看出这种算法是把频率过渡和灰度变换相结合的图像增强的方法,利用压缩亮度范围和增强对比度来改善图像质量的处理技术。能够很好的去掉光照不均匀所产生的黑斑;能够比较好的保持图像的原始风貌。

2.4基于直方图均衡化的图像去雾算法

本章主要讨论了直方图均衡化处理的基本原理以及相关模型,并用MATLAB语言实现了直方图均衡化的图像增强处理,结果表明,直方图均衡化方法并不能生成平坦的直方图,但它具有能增强图像灰度级的动态范围的特性。

2.4.1直方图均衡化去雾原理

目前,对于去雾图像进行清晰化处理的技术主要分为两大类:一种是基于图像处理,通过增强图像对比度而达到清晰化目的;另一种是基于物理模型的图像复原方法,从雾形成原因的角度对大气散射作用进行建模分析处理的。图11为简单的直方图均衡的分类示意图:

v2-135fabcabe099762b778c669a18a1621_b.jpg

图11直方图均衡的分类示意图

基于直方图均衡化的算法以概率论为基础,用灰度变换达到图像增强的目的,是图像增强中最常用的算法之一。本文介绍一种基于累积分布函数变换法为基础的直方图均衡化。它可以通过对直方图进行均匀修正技术,可使图像的灰度间距增大,从而使图像变得更加清晰。

2.4.2直方图均衡化模型

对于连续图像,设r和s分别代表被增强图像和变换图像后图像的灰度。为了简单,在下面的讨论中,假定所有像素的灰度都被归一化了,就是说,当r=s=0时,表示黑色;当r=s=1时表示白色;变换函数T(r)与原图像概率密度函数P(r)之间的关系为:

s=T(r)=∫Pr(r)dr (0 ≤r≤ 1) (2-10)

这是原始图像灰度r的,累积分布函数。式中累积分布函数是r的函数,单调从0增加到1,所以这个变换函数满足求导由此可见,变换后的变量s的定义域内的概率密度是均匀分布的。由此可见,用r累积分布函数作为变换函数可产生一幅灰度级分布具有均匀概率密度的图像。其结果扩展了像素取值的动态范围。

为了对图像进行数字处理,必须引入离散形式的公式。当灰度级是离散值的时候,可用频数近似代替概率值,即:

Pr(rk)=

v2-2d7f2988768e25304b7c605375c69940_b.png

v2-add3e0a0725190a0fecc4bd3e3b3b681_b.png

公式2-12)中,L是灰度级数;

v2-2b7d031f86f6577243777cc1de3847b1_b.png

是取第k级灰度值的概率;Nk是在图像中出现第k级灰度的次数;n是图像中像素数。

通常把为得到均匀直方图的图像增强技术叫做直方图均衡化处理或直方图线性化处理

2.4.3直方图均衡化的算法步骤

直方图均衡化的算法步骤如下:

1)、列出原始图像和变换后图像的灰度级:I,j=0,1,,L-1,其中L是灰度级的个数;

2)、统计原图像各灰度级的像素个数ni;

3)、计算原始图像直方图:P(i)=ni/N,N为原始图像像素总个数;

4)、利用灰度变换函数计算变换后的灰度值,并四舍五入:j=INT[(L-1)Pi+0.5];

5)、确定灰度变换关系i→j,根据此将原图像的灰度值f(m,n)=i修正为g(m,n)=j统计变换后各灰度级的像素个数nj;

6)、计算变换后图像的直方图:p(j)=nj/N

v2-ab0d1582b8dd4921d46981f36a147536_b.jpg

图12 直方图均衡化示意图

根据图12直方图均衡化示意图做出下面图像效果:

v2-f86a4b5c73e96b2bc45e02d7981fdf3c_b.jpg

图13输入图像

v2-7e0501ed1884ccf7dfe96e9a7a971ba7_b.jpg

图14原始图像直方图

v2-cec304d8a692976d472c13fa46810a67_b.jpg

图15均衡化后的直方图

v2-79fe4bc5e4dab82dda962c3117deb9c3_b.jpg

图16均衡化的图像

v2-cc962edf78c02141db47ddfd8edfd61c_b.jpg

图17 直方图均衡化后的总示意图

2.4.4小结

结果分析:由输入图像图13和输出图像图16可以很清楚的看出,图像效果很好的增强,效果比较明显,图14原始图像的直方图分布比较密集,灰度级动态范围窄而集中于灰度级的中部,导致了图像的对比度低而使整幅图像模糊不清,图15经过直方图均衡化处理后直方图的成分覆盖了灰度级很宽的范围,而且像素的分布没有不太均匀,图像的局部特征得到了增强。因此这种把有雾图像的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围从而达到增强雾天图像整体对比度的效果。

2.5基于图像复原的去雾霭方法

2.5.1暗原色先验去雾霭原理

暗原色先验(dark channel prior)由何恺明等人首先提出。暗原色先验来自对户外无雾图像数据库的统计规律,它基于经观察得到的这么一个关键事实--绝大多数的户外无雾图像的每个局部区域都存在某些至少一个颜色通道的强度值很低的像素。

在被雾干扰的图像里,这些暗像素的强度值会被大气中的白光成分所充斥而变得较高。因此,这些暗像素能够直接用来评估雾光的透射信息。利用这个先验建立的去雾模型,结合一个已有的雾成像模型和插值法抠图修复,可以得到高质量的去雾图像和很好的深度图。求取暗原色的数学表达式描述如下:

Jdark(x)=min(min(Jc(y)));c∈(r,g,b);y∈Ω(x) (2-12)

公式(2-13)中:Jdark(x)即图像J的强度值接近于0的暗原色;Jc为J的R、G、B三通道中的一个通道;Ω是以x为中心的一块区域,这里假设图像Ω具有相同的深度。在带雾里,这些暗原色的强度值会变高,并且决定着透射率的大小,这样就能够很好的估测透过率了。暗原色点主要存在于物体的局部阴影、自然景观的投影等等。关于引起暗原色的原因,何恺明这样解释:红、蓝、绿为光学三原色,即使是嫩绿的树木,其红色和蓝色的亮度也会很低,所以也会有暗原色。

2.5.2暗原色先验模型

(1)估测透射率分布

透射率反映了光在大气中传输的重要特性。假设大气是均匀的在一定时刻对于整幅图像来说,全散射系数β是个定值,因此图像上各点退化的程度是不同的,是由传输距离即场景深度的不同决定的。基于暗原色先验知识和雾图的成像模型,可以直接估计出成像时刻的雾浓度,从而估计透射率t。首先假设大气光成分A已知,且在局部区域Ω内,透射率保持一致则有:

v2-2c41eeba2ce5df50528329302b9b6de6_b.jpg

公式(2-14)中,c为图像R、G、B三通道之中一个颜色通道,Ω表示以像素x为中心的块,在这里其大小为15*15.又已知无雾图像的暗原色值很小,接近零,锲A≠0,则可知透射率的表达式为:

v2-0c6ec994648bba4fb4c9da1a5872dfc0_b.png

这样就可以粗略的估计透射率图。

(2)复原物体光线

有了投射分布,我们可以对图像进行复原了。当t(x)接近0的时候,直接衰减乡J(x)t(x)也会接近0,直接复原得到的原始图像也倾向于包含噪音。因此,我们把投射因子t(x)设定了一个下限t0。最终得到的复原J(x)通过下面表达式实现:

v2-e4f823ab1e3da79dfe3eb84351afb7af_b.png

(3) 估测大气光

从前的大多数单一图像去雾方法当中,大气光成分A通常是从不透明的含雾的像素中测得。但在实际的图像中,最明亮的像素点有可能是一辆白色的汽车或者是白色的建筑物。我们可以通过暗原色来提高大气光的估测,我们利用它自动地估测本文中引用的所有图像的大气光成分。

2.5.3算法概述

具体实现步骤如下:

1)将输入的带雾图像分成15*15的块,将得到局部和全部的暗原色图;

2)利用软件细化透射率图;

3)利用暗原色先验估计大气成分;

4)恢复无雾图像。

这种算法的一般原理图如下:

v2-434e5e6565d403262121bc2abd89b324_b.jpg

图18暗原色先验原理图

利用MATLAB软件编写程序代码获得以下效果图:

v2-3b55099fdd99e223dc72e794551b8ae9_b.jpg

图19原始图像

v2-54903cf06248289b922a594629c2978c_b.jpg

图20 dark channnel图像

v2-d526a662464f8ba4a20f9e9f30a5de82_b.jpg

图21透射率t的图形

v2-d6bd6c4cfd5d04e48f97aa43336ac364_b.jpg

图22去雾后的图像

2.5.4小结:

由图19,图22可以看出原始图像受雾影响模糊不清、颜色不真实的图像在细节上更清晰,颜色更真实,视觉效果更令人满意。这种算法适合以上各种场景的图像去雾,无论雾的分布均匀与否,雾的浓度薄或浓,场景中深度变坏如何,都能有效地去除图像中雾的作用,有效的提高了图像的清晰度。从而很大程度上提高了雾天的能见度。

3实验结果

v2-a99a7572e983048d4b97ba4e0acb33f9_b.jpg

图23结果分析图

光照分离光照分离模型利用压缩亮度范围和增强对比度来改善图像质量的处理技术。

直方图均衡化方法并不能生成平坦的直方图,但它具有能增强图像灰度级的动态范围的特性。

暗原色先验明显的去除雾的干扰,提高图像的清晰度,增强图像色彩和细节,复原得到高质量的图像。

由图23可知直方图均衡化对于灰度图像去雾效果比较好,而暗原色先验对于彩色图像去雾效果比较明显,图像中的特征得到很好的增强,使人们能够很好的观测图像给予的信息,并作出正确的判断。

4总结与展望

直方图是多种图像空间域处理技术的基础,能有效地用于图像增强,直方图均衡化是图像增强的基本技术。本文分析了直方图均衡化处理方法的基本理论并用Matlab进行了实验。结果表明,直方图均衡化方法并不能生成平坦的直方图,但它具有能增强图像灰度级的动态范围的特性。本文在接下来的设计中提出了初始透射率的方法,利用暗原色先验的方法 ,最后对去雾后图像进行亮度对比度增强处理,这些去雾方法在视频增强领域可达到基本实时处理的水平。

图像识别技术范畴图像识别技术的研究目标是根据观测到的图像,对其中的物体分辨其类别,做出有意义的判断。即利用现代信息处理与计算技术来模拟和完成人类的认识,理解过程。

基于物理模型的雾天图像复原算法已经取得了极大进展,但是由于劲舞退化与场景深度呈非线性关系,由此带来的最大问题是很难保证建立的景物退化模型的正确性和宽适性。目前,大多数的图像复原方法都建立在大气散射模型的基础上,并受到了此类模型的限制。即使在某些天气情况下,使用该模型的复原方法也会失效。所以,采用更加完备的物理模型来描绘复杂的大气状况,探索研究基于这些模型的去污算法这一课题,在未来一段时间内都非常具有挑战性。

附录1 光照分离代码

img=imread('1.jpg');

img = rgb2gray(img);

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);

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');

% 显示高通滤波期的频率响应

figure,freqz2(gauss_high_filter); colormap(jet(64));

function LightImage = LR(img)

[row,col,hei]=size(img);

if hei == 1

[row,col]=size(img);

ReflectImg = zeros(row,col) ;

LightImg = zeros(row,col) ;

[ReflectImg,LightImg] = ASNorm(img,0.02,10) ;

else

img_R = zeros(row,col);

img_G = zeros(row,col);

img_B = zeros(row,col);

img_R(:,:) = img(:,:,1);

img_G(:,:) = img(:,:,2);

img_B(:,:) = img(:,:,3);

ReflectImgR = zeros(row,col) ;

LightImgR = zeros(row,col) ;

[ReflectImgR,LightImgR] = ASNorm(img_R,0.02,10)

ReflectImgG = zeros(row,col) ;

LightImgG = zeros(row,col) ;

[ReflectImgG,LightImageG] = ASNorm(img_G,0.02,10) ;

ReflectImgB = zeros(row,col) ;

LightImgB = zeros(row,col) ;

[ReflectImgB,LightImgB] = ASNorm(img_B,0.02,10) ;

LightImg = zeros(row,col,3) ;

LightImg(:,:,1) =LightImgR(:,:) ;

LightImg(:,:,2) =LightImgG(:,:) ;

LightImg(:,:,3) =LightImgB(:,:) ;

附录2 基于直方图均衡化的图像去雾代码

clc; clear all; close all

% 图像的预处理,读入彩色图像将其灰度化

PS = imread('c:\\ce.png'); % 读入彩色图像文件

figure;

subplot(2, 2, 1); imshow(PS); title('输入的图像')

PS=rgb2gray(PS); % 灰度化后的数据存入数组

% 绘制直方图

[m,n] = size(PS); % 测量图像尺寸参数

GP = zeros(1,256); % 预创建存放灰度出现概率的向量

for k = 0:255

GP(k+1) = length(find(PS==k))/(m*n);

% 计算每级灰度出现的概率,将其存入GP中相应位置

end

subplot(2, 2, 2); bar(0:255, GP, 'g'); title('原图像直方图')

xlabel('灰度值'); ylabel('出现概率')

% 直方图均衡化

S1 = zeros(1,256);

for i = 1:256

for j = 1:i

S1(i) = GP(j)+S1(i);

% 计算Sk

end

end

S2 = round((S1*256)+0.5); % 将Sk归到相近级的灰度

for i=1:256

GPeq(i) = sum(GP(find(S2==i))); % 计算现有每个灰度级出现的概率

end

subplot(2, 2, 3); bar(0:255, GPeq, 'b'); title('均衡化后的直方图')

xlabel('灰度值'); ylabel('出现概率')

% 图像均衡化

PA = PS;

for i = 0:255

PA(find(PS==i)) = S2(i+1);

% 将各个像素归一化后的灰度值赋给这个像素

end

subplot(2, 2, 4); imshow(PA); title('均衡化后图像')

附录3 暗原色先验的去雾代码

close all

clc

w0=0.65; %0.65 乘积因子用来保留一些雾,1时完全去雾

t0=0.1;

I=imread(7.png);

figure;

set(gcf,'outerposition',get(0,'screensize'));

subplot(221)

imshow(I);

title('原始图像');

[h,w,s]=size(I);

min_I=zeros(h,w);

%下面取得暗影通道图像

subplot(223)

imshow(dark_I);

title('dark channnel的图形');

Max_dark_channel=double(max(max(dark_I))) %天空亮度

dark_channel=double(dark_I);

t=1-w0*(dark_channel/Max_dark_channel); %取得透谢分布率图

subplot(224)

T=uint8(t*255);

imshow(T);

title('透射率t的图形');

t=max(t,t0);

I1=double(I);

J(:,:,1) = uint8((I1(:,:,1) - (1-t)*Max_dark_channel)./t);

J(:,:,2) = uint8((I1(:,:,2) - (1-t)*Max_dark_channel)./t);

J(:,:,3) =uint8((I1(:,:,3) - (1-t)*Max_dark_channel)./t);

subplot(222)

imshow(J);

title('去雾后的图像');

End

参考文献

[1]姚敏.数字图像处理[M].北京:机械工业出版社,2006.

[2]霍宏涛.数字图像处理[M].北京:机械工业出版社,2004.

[3]陆宗骐.C/C++图像处理编程[M].北京:清华大学出版社,2005.01

[4]宫微微.雾天图像的复原技术研究[D]:[硕士学位论文].武汉:华中科技大学,2010.

[5]荣观澳.计算机图像处理[M].北京:清华大学出版社,2000:5-9.

[6]武英.利用同态滤波改善光照不足图像[J].南京晓庄学院学报.2007,(6):70~71.

[7]贾明桥.大雾天气下图像的清晰化方法[D]:[硕士学位论文].西安:西安理工大学,2006.

[8]黄黎红.退化图像的去雾方法[J].红外与激光工程,2010,39(5):985-988.

[9]王勇.单幅雾天降质图像复原方法研究[D]:[硕士学位论文].合肥:合肥工业大学,2010.

[10]樊厚春.有雾天气图像对比度恢复[D]:[硕士学位论文].广州:暨南大学,2006.

[11]J.W.Tukey.Nonlinear(nonsuperposable)method for smoothing data.Conference Record EASCON,2017:673.

[12]A.Nieminen,P.Heinonen and Y.Neuvo.A new class of detail-preserving filters for image processing.IEEE Tran.On PAMI,2000(l):74-99.

[13]G.R.Arcer,R.E.Foster.Detail preserving ranked-order basedfi lters for image processing.IEEE Trans.on ASSP, 1989,37(1):83-98 .

[14]Kokkeong Tan and,John P.Oakley.Physies-Based Approach to Color Image Enhaneement in Poor Visibility Conditions[C].Opt.Soc.Am.A,2001,18(10):2460-2467.

[15] R.J,Wall,A.Klinger,and K.R.Castleman,"Analysis of ImageHistograms,"Proc.SecondInt.Cong.on Pattern Recognition,Copenhagen,1974.

[16]B.Funt,M.Drew and M.Brockington.Recovering Shading form Color Images[C].In Proc.European Comference on Computer Vision,2010:124-132.

[17]Narasimhan S G,Nayar S K.Vision and the atmosphere [C].International Journal of Computer Vision,2002,48(3):233-254.
[18]FATTALR.Single image dehazing[J].SIGGRAPH,ACM Press,2018:1-9

[19]Middleton.Vsion through the Atmosphere [M].University of Toronto Press,2011.

  • 9
    点赞
  • 173
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值