基于修正的Retinex雾天图像增强算法

更新时间:2023-09-27 07:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本 科 生 毕 业 设 计 论 文

基于修正的Retinex雾天图像增强算法

cxp

院 系: 电子信息工程系 专 业: 通信工程 班 级: 通信082 学 号: 8107052XX 指导教师: XXXXXXX,XXXXXXX 职称(或学位): 副教授,讲师

2012年 4月

原创性声明

本人郑重声明:所呈交的论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。

学生签名: 年 月 日

指导声明

本人指导的 同学的毕业论文(设计)题目大小、难度适当,且符合该同学所学专业的培养目标的要求。本人在指导过程中,通过网上文献搜索及文献比对等方式,对其毕业论文(设计)内容进行了检查,未发现抄袭现象,特此声明。

指导教师签名: 年 月 日

目 录

1引言 .............................................................................................................................................. 2 2 Retinex理论简介 ........................................................................................................................ 2

2.1 中心/环绕Retinex算法 ................................................................................................. 3 2.2 Retinex照射反射模型 ................................................................................................... 4 3 修正Retinex全局图像增强和局部图像增强 .......................................................................... 4 4实验结果与分析 .......................................................................................................................... 6 5 结论 ............................................................................................................................................. 8 致谢 ................................................................................................................................................. 9 参考文献 ......................................................................................................................................... 9 附录 ............................................................................................................................................... 10

基于修正的Retinex雾天图像增强算法

陈学平

(电子信息工程系 指导教师:黄黎红,何素贞)

摘要:提出了采用修正的Retinex算法增强图像对比度的方法,对图像的照射分量和反射分量进行非线性变换修正。非线性S型函数对较大和较小的反射分量值改变较小,对中间值改变较大,也就是提高了图像局部对比度。图像的照射分量通过全局对比度增强函数进行强度拉伸,提高全局对比效果。将该方法与带色彩恢复的多尺度MSRCR算法和几种经典的方法进行比较,结果表明,论文算法处理后的图像对比度明显增强,视觉效果更好,对于图像的黑暗或者明亮的地方的可视细节能够显著提高。Retinex由于卷积运算的影响,运算时间都较久,此算法的图像处理速度很快,图像也不会出现明显的失真或泛白等现象。 关键词:Retinex;MSRCR;修正;雾天降质图像

Based on the modified Retinex fog image enhancement algorithm

Chen Xue-ping

(Electronic & Information Engineering Department, Supervisor:Huang Li-hong,He Su-zhen)

Abstract:Put forward Retinex algorithm using the modified to enhance the image contrast.Retinex theory in essence,aside from the image in S irradiation light L to the reflection properties of the object R,to obtain the true colors of the objects.Modified Retinex introduction of non-linear S-shaped function to change the smaller to larger or smaller reflection component,intermediate values change larger,it improves the local contrast of the image.This method compare with several conventional image enhancement methods and single-scale SSR,MSR and with the color of recovery MSRCR algorithm,The results show that the algorithm processing the image has better visual effects,it cans significantly improve on bright image areas and dark areas of the visual details.Retinex due to the convolution ,the computation time is longer ,the algorithm of image processing speed very quickly ,the image will not appear significant color distortion. Keywords:Retinex;MSRCR;Modified;Fog-degraded image

1

1引言

在有雾的天气下,能见度非常的低,拍摄的图像一般都会出现比较严重的退化与失真,这样在公路交通、飞机导航、船舶航行等方面都有不可忽视的影响。因此加强对在有雾的天气下拍摄的图像的增强显得非常重要,对恶劣有雾天气条件下的景物图像进行清晰化处理具有重要意义。

图像增强技术的主要目的是改善图像的视觉效果,或更方便计算机识别,即提高图像的可识别度[1]。使处理后的图像对某种具体的,特定的应用来说,比原始图像更合用,在这里特别强调“具体的、特定的应用”是非常有意义的,因为到目前为止,图像增强还没有统一的理论。总的来说,图像增强技术大都属于试探性和面向问题的,经某种算法处理后,视觉效果得到改善,或计算复杂性减小,或机器识别率提高,又合乎应用要求,这样的增强算法就是好算法。

近年来增强技术已发展得较为成熟,许多方法已成为经典方法,如直方图均衡化、灰度变换、同态滤波等等。但人们仍然在研究新的增强技术,比如文献[2]中提到的:“空域的局部统计法和小波变换、K-L变换等[2]。”Retinex理论及相关算法是最近比较流行的图像增强的新方法。基于Retinex理论的算法以其动态范围压缩大、颜色恒常性、锐化、色彩保真度高等优点,对于图像增强方法的改进起到了积极的作用,使得人们对于得到更加完善的视觉效果充满信心。通过对Retinex理论和SSR、MSR到MSRCR算法的研究,在Retinex的照射反射模型的基础上,通过引入的参数自适应较强的非线性灰度变换函数来改善图像全局和局部对比度,也就是通过强度拉伸照射分量来提高全局对比度,再通过选取合适的非线性函数来拉伸反射分量,使得细节的局部可见度得到提高,通过把空域中的卷积变成频域中的相乘从而避免了复杂的多尺度卷积运算,在保持MSRCR颜色再现等优点的同时增加了对比度。经实验证明,用线性变换函数去修正图像的照射分量和用非线性变换函数去修正图像的反射分量,以提高图像的全局和局部对比度的改进算法使得图像的清晰度、亮度、还原颜色等方面都更接近原图像,增强后的图像视觉效果更佳。

2 Retinex理论简介

从文献[3]中可以得知:“Retinex理论是由 Edwin Land于上世纪70年代从人类亮度和颜色感知的模型中提出的一种与之不同的颜色恒常知觉的计算理论[3],Retinex是一个合成词,它是由 retina和cortez 组合而成的,即由视网膜和大脑皮层的英文单词组合而成的,所以 Retinex理论也可以叫视网膜大脑皮层理论[3]。”文献[4]中Retinex理论[4]主要包含了以下内容:(1)研究证明,每一种物体其自身对长,中和短三种波型的反射能力决定了其本身的颜色。(2)光照不均匀的话物体的颜色也是不会受到影响的 [4]。受光照影响严重的图像通常是用Retinex理论对其补偿,Retinex理论的主要做法就是将一幅需要处理的图像分解成两幅不同的图像,一幅是照射分量图像,另一幅是反射分量图像,这样做的好处主要是可以把后景光照和前景光照对图像的影响去除掉,而且对于室外和室内图像的空间光照变化能够起到增强的作用[5]。将原始图像用公式表示为:

i(x,y)?l(x,y)?r(x,y) (1)

i(x,y)代表原始图像, l(x,y)代表照射光图像—决定了一幅图像中像素能够达到的动态范

2

围,r(x,y)代表物体反射属性—决定了图像的内在性质。所以实际上 Retinex理论就是通过图像i来得到物体的反射性质r,也就是去除了照射光l的性质从而得到物体原本该有的样子[4]。

从最早的1971年land和McCann提出的任意路径算法(random walk)开始,Retinex算法不断地发展,随后Jobson等人提出了基于同态滤波(Homomorphic Filtering)的Retinex算法。1985年,Funt等人通过对泊松方程Retinex算法的研究并通过在其基础上作出改进,提出了重复的多解决方案的非线性滤波Retinex方法[6]。近年来D J Jobson,G A Wooden将这种理论运用到彩色图像增强领域,取得了非常理想的效果。还有很多科学家将其用于图像预处理,McCann,Marini等人各自从不同角度提出了对应的Retinex算法,Land本人提出过几个版本,中心/环绕Retinex算法[7]是最近的一个版本,它是从神经生理学的角度出发提出的。

2.1 中心/环绕Retinex算法

Jobson根据中心/环绕Retinex算法理论(其基本思想是:通过赋予其周围环绕像素的不同权值来估计每一个中心像素的亮度,所赋予的比例权值关系完全由环绕函数来确定。)提出了单尺度Retinex算法(SSR)[8],这个算法用数学公式可表示为

(2) R(ix,y)=logIi(x,y)?log[F(x,y)?Ii(x,y)]

其中R是Retinex的输出,Ii(x,y)是第i个像素颜色谱带的图像分布,?表示卷积,F表(ix,y)示高斯环绕函数,因为高斯环绕函数具有较好的综合效果。由于在细节增强与颜色保真这两个特性上单尺度Retinex算法(SSR)不能同时满足。因此,D Jobson等人提出了基于单尺度Retinex算法(SSR)的多尺度Retinex算法(MSR)[9],此算法同时包含了SSR高、中、低三个尺度的特点。

多尺度算法的基本公式是

Ri(x,y)? ?W?log?I(x,y)??log?F(x,y)?I(x,y)?? (3)

ninin?1N其中R是Retinex的输出,i?R,G,B表示3个颜色谱带,Fn(x,y)是高斯环绕函数,(Wn表ix,y)示尺度的权重因子,N表示使用尺度的个数,N=3,表示彩色图像,i?R,G,B。N=1,表示灰度图像。从公式中可以看出:MSR算法的特点是能产生包含色调再现和动态范围压缩这两个特性的输出图像,MSR的算法处理的效果是在SSR算法的基础上通过把多个固定尺度的色彩通道进行线性加权综合来提高增强的。在MSR算法的增强过程中,图像可能会因为增加了噪声而造成对图像中的局部区域色彩失真,使得物体的真正颜色效果不能很好的显现出来,整体视觉效果差。所以为了弥补这个缺点,我们一般情况下会应用带色彩恢复因子C的多尺度算法(MSRCR)来解决[10]。带色彩恢复因子C的多尺度算法(MSRCR)[10]是在多个固定尺度的基础上考虑色彩不失真恢复的结果,在多尺度Retinex算法过程中,我们通过引入一个色彩因子C来弥补由于图像局部区域对比度增强而导致图像颜色失真的缺陷,通常情况下所引入的色彩恢复因子C的表达式为

RMSRCRi(x,y)?Ci(x,y)RMSRi(x,y) (4)

3

Ci(x,y)?f[Ii(x,y)]?f[

Ii(x,y)?Nj?1Ij(x,y)] (5)

其中Ci表示第i个通道的色彩恢复系数,它的作用是用来调节3个通道颜色的比例,f(?)表示的是颜色空间的映射函数。带色彩恢复的多尺度Retinex算法(MSRCR)通过色彩恢复因子C这个系数来调整原始图像中三个颜色通道之间的比例关系,从而通过把相对有点暗的区域的信息凸显出来以达到消除图像色彩失真的缺陷,处理后的图像局域对比度提高,而且它的亮度与真实的场景很相似,图像在人们视觉感知下显得极其逼真。所以说这个算法可以为图像提供几个特性,如:较好的颜色再现、亮度恒常性以及动态范围压缩等。

2.2 Retinex照射反射模型

Land提出了人们公认的Retinex理论,这个理论被当作人类视觉模型(HVS)并以此来解释色彩的

恒常性,他的依据是HVS对目标表面的反射信息拥有非常高的敏感度。由上面公式(1) 可知,提出的模型就是将照射光图像l和目标反射图像r的每个像素值得乘积表示为原始图像i,照射部分可以通过将图像进行二维卷积运算获得近似估计值。考虑到高斯滤波在很多应用场合很实用,并且对于那些逐渐变化的区域之间的边界有突出的作用,所以我们一般采用高斯低通滤波器近似估计照射分量l,将上面公式(2)写成如下形式:

m2?n2exp(?)dmdn (6) l(x,y)???i(x?m,y?n) 22?X2??Xmn1上式中:?X为控制滤波窗大小的尺度参数,我们对于这个参数的要求可以不用太高,它的取值取常规值就可以满足,这里取的是100,因为我们只是估计照射分量的近似值;m跟n的值只需要在图像的平面坐标内取值就可以。在得到照射分量后,我们便可以用除法运算来获取反射部分,将上面的公式(1)变换为

r(x,y)?i(x,y)/l(x,y) (7) Retinex理论很好的解决了分离照射分量和反射分量的问题,首先对于照射分量,我们用高斯滤波器进行估值,其依据是跟表面反射变化相比较,照射分量变化的更平滑一些,因此对于l的平滑变化用低通滤波器去估计,反射分量信息r通过模型的除法获得。这个信号在通过增益/补偿控制模块之后,就可以当作输出了,但是输出的效果可能会有一点光晕效应或者泛白现象。由于图像边界处的照射信号可能会包含因为发生尖锐的跳变而产生的高频成分和低频成分,而低通滤波器不能过滤高频成分,所以输出图像也可能会出现失真现象。

3 修正Retinex的全局图像增强和局部图像增强

在Retinex照射反射模型[11]的基础上,修正Retinex算法为了提高图像局部的跟全局的对比度利用引入的参数自适应较强的非线性变换函数来达到该目的,也就是通过强度拉伸照射分量来提高图像的全局对比度,并为了提高细节的可视度利用恰当的非线性函数来映射反射分量,避免了复杂的多尺度模板卷积运算[12],节省了大量的运算时间,图像的高频信息在进行图像全局增强的同时也得到了增强。

4

修正的Retinex模型对传统Retinex模型进行了改进,通过引入线性函数F(l)对图像照射分量l进行线性变换和非线性函数S(r)对反射分量r进行非线性变换后,新的照射反射模型就是:

i(x,y)?F(l(x,y))S(r(x,y)) (8)

其中,i(x,y)为被光照影响的图像;(x,y)是图像像素点的坐标。

通过前面的分析,可以知道照射分量l和反射分量r可以分离,分离出来的照射分量l通过用线性变换函数进行修正可以得到全局对比度更好地处理图像,所以引入参数自适应较强的增强函数来拉伸图像的灰度。

全局增强函数F(l)的形式的选择性非常多种,包括直方图均衡、强度拉伸、单尺度Retinex或者其他全局对比度增强函数。在处理彩色图像过程中,我们不仅需要保持色调,尽量不出现颜色失真还需要避免色域问题,所以我们选择的全局增强函数必须考虑到两个方面: (1)全局增强函数必须能够自适应增强全局的对比度;

(2) 全局增强函数必须尽最大可能的避免色域问题,我所选用的线性函数是:

0,l???k???l?(??k?)?F(l)??,??k??l???k?2k??1,l???k???

(9)

上式中:?所代表的是灰度的平均值,?所代表的是灰度的标准差。使用这种变换形式的作用是可以使得图像的灰度值在它的平均值周围呈现最大程度的拉伸,一般情况下,我们日常处理的图像要求在k取值为3的时候基本都能得到满足,由于调整控制的参数没有很多,所以参数自适应的要求也得到了满足。

在Retinex模型中r信号表示目标反射分量,它主要是表示图像的细节信息,利用非线性S型函数来映射反射分量来提高细节部分的可视度。为了提取它,我们可以通过将局部照射l周围的局部变化看成r信号, 输入图像i除以照射分量l就可以得到r。i的值和l的值都在[ 0, 1] 区间内,此外为了避免除零的情况发生,我们可以把分子分母都加上一个极小的数?,这样计算就更方便了。 r?i?? (10) l??在图像灰度锐变区域对应的r值很大,图像的平坦区域对应的r值很小,这些区域的细节可见度都不错,我们可以通过调整r的值来增强局部的细节信息。选择的函数也需要满足几个条件:(1)产生的调整程度是非一致的,因为其他r值需要尽可能地调整;(2)函数最好是全局操作,但主要是局部调整,参数的自适应性能要好,主要是为了在提高局部对比度的同时也不会增加算法的运算复杂程度。S型函数[13]满足了这种要求

5

k??r?e1??e1?(t?e1)???,e1?r?tt?e??1?S(r)??k?e2?r???,t?r?e2?e2?(e2?t)???e2?t??

上式中:e1?min(r);e2?max(r);t? (11)

e1?e2,这些参数根据图像可以自动的进行计算;k是正整2数,函数曲线的曲率可以用正整数k来调整,在通过大量实验的情况下发现,k取值为2可以满足大多

数图像处理的要求。S型函数在k取值为2的情况下图形如图1所示。

图1 S型函数图形

新的照射反射模型中的F(l(x,y))和S(r(x,y))可以通过上面公式进行计算得知,这种模型框架的一般流程描述如图2所示。 原始图像 i 增强全局对比度 图2 Retinex模型图像增强流程图

亮度估计 l 除以 r 增强局部对比度 S(r) i 增强图像i(x,y) F(l) 4 实验结果与分析

为了比较算法的性能,论文对两幅图像进行了实验仿真。本文的实验环境为Matlab 7.0,在windows Xp系统下进行。其中图3为原始图像,图4为本文算法的输出图像,图5为MSR算法处理后的图像。

6

从图中可以看出,本文算法处理的图像总体感觉比MSR算法要好。对于MSR算法处理的结果,改善了图像的视觉效果,把隐藏的细节给凸显了出来,但图像彩色整体泛白是此算法的最严重的缺点。而本文算法在对通过对图像进行局部增强时移除了天空的噪声,把远处隐藏的细节信息凸显了出来,改善了图像的整体视觉效果并提高了图像对比度。

图3原始图像 图4本文算法输出 图5 MSR算法输出

图3原始图像 图4 本文算法输出 图5 MSR算法输出

图3原始图像 图4本文算法输出 图5 MSR算法输出

图3 原始图像 图4 本文算法输出 图5 MSR算法输出

7

图3 原始图像 图4 本文算法输出 图5 MSR算法输出

图3 原始图像 图4 本文算法输出 图5 MSR算法输出

图3 原始图像 图4 本文算法输出 图5 MSR算法输出

5 结束语

本文采用修正的Retinex算法对图像进行处理,在图像的细节信息部分明显的增强了,同时对于图像的整体对比度也改善了。从实验结果表明,本文算法明显优于基于Retinex计算理论的MSRCR方法,本文所选用的非线性变换的函数并不是不变的,对照射分量和反射分量的非线性变换我们可以选择一些处理效果更好的函数,所以我们下一步的研究方向就是继续探索性能更好的非线性变换函数。

经过这段时间的努力,我的毕业论文终于完成了,从中学到了很多知识。这次的论文是对以前学过知识的加深和巩固。在这个过程中遇到不懂的及时请教老师,与同学交流或者通过书籍来解决问题。从中我学到了许多实际的、有意义的知识,并且认识到了自己对于这方面的知识还是很贫乏,考虑的也不够的全面,希望自己在以后的学习工作生涯中能够慢慢的有所改善。我深刻的体会到自己的努力是最重要的,但是身边老师朋友们的帮助也是必不可少的,更深刻地体会到“细节决定成败”,一个小小的细节都有可能导致失败。

8

致谢:

在本文的撰写过程中,黄黎红老师和何素贞老师作为我的指导老师,她们治学严谨,学识渊博,视野广阔,为我营造了一种良好的学术氛围。置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了明确的学术目标,领会了基本的思考方式,掌握了通用的研究方法,而且还明白了许多待人接物与为人处世的道理。其严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力,与无微不至、感人至深的人文关怀,令人如沐春风,倍感温馨。正是由于她们在百忙之中多次审阅全文,对细节进行修改,并为本文的撰写提供了许多中肯而且宝贵的意见,本文才得以成型。

在此特向黄黎红老师和何素贞老师致以衷心的谢意!向她们无可挑剔的敬业精神、严谨认真的治学态度、深厚的专业修养和平易近人的待人方式表示深深的敬意!

参考文献:

[1] 贾永红.计算机图像处理与分析[M].武汉:武汉大学出版社,2001. [2] 陈书海,傅录祥.实用数字图像处理[M].北京:科学出版社,2005.

[3] 李学明.基于Retinex理论的图像增强算法[J].计算机应用研究,2005,22(2):235-237 [4]江兴方,陶纯堪.Retinex彩色图像增强理论及其研究进展[J].光学技术,2005,31(增刊):258-263. [5] 唐 亮,谢维信,黄建军.市航空影像中基于模糊Retinex的阴影消除[J].电子学报,2005,33(3):500-503.

[6]Kimmel M, Elad R.A Variational Framework for Retinex[J].International Journal of Computer Vision, 2003, 52(1):7-23. [7]Edwin H Land.Recent Advances in Retinex Theory[J].Vision Research,1986,26(1):7-21.

[8]Jobson D,Rahman Z,Woodell G A.Properties and Performance of a Center/Surround Retinex[C].IEEE Trans on Image Processing,1997,6(3):451-462.

[9]Jobson D,Rahman Z,Woodell G A.A Multiscale Retinex for Bridgeing the Gap between Color Images and the Human Obse- rvation of Scences [C].IEEE Trans on Image Processing,1997,6(7):965-976.

[10]Rahman Z,Jobson D J,Woodell G A.Multi-scale Retinex for Color Image Enhancement [C].Lausanne,Switzerland:Proceed- ings of International Conference on Image Processing,1996:1003-1006.

[11]Edwin H L.Recent advances in retinex theory and some implications for cortical computations:Color vision and the natural image[C]. Proc. Natl. Acad. Sci. USA, 1983, 80: 5163-5169.

[12] YrShu Zhai,Xiao Ming Liu. An improved fog-degraded image enhancement algorithm[C].Proceedings of the 2007 International Conference on Wavelet Analysis and Pattern Recognition ,Beijing ,China,2007:2-4.

[13] 李冠章.一种高效地修正Retinex图像自适应对比度增强算法[J].测试技术学报,2009,23(5):445-451.

9

附录

clc;

clear all;%%修正的算法 I=imread('tokyo_input.jpg'); I=double(I);

R=I(:,:,1); %分别提取图像的R分量、G分量和B分量。 G=I(:,:,2); B=I(:,:,3); [m,n]=size(R); R0=double(R);

Rfft2=fft2(R0); %对图像进行傅立叶变换,转换到频域中。 sigma=100; %高斯核。 for i=1:m for j=1:n

F(i,j)=exp(-((i-m/2)^2+(j-n/2)^2)/(2*sigma*sigma)); end end

F = F./(sum(F(:))); Ffft=fft2(double(F)); DR0=Rfft2.*Ffft;%做卷积

DR0=fftshift(DR0);%将频域中心移到零点。 DR=ifft2(DR0); %变换回空域中。 DRdouble=double(DR); %照射分量。 u=mean2(DRdouble);%求平均值。 v=std2(DRdouble); %求标准差。 MIN = u-3*v; MAX = u+3*v;

for i=1:m %对照射分量进行拉伸。 for j=1:n

if DRdouble(i,j)<=MIN Rr(i,j)=0; end

if DRdouble(i,j)>MIN&&DRdouble(i,j)

10

end if DRdouble(i,j)>=MAX Rr(i,j)=1; end end end

Rl=(R0+0.01)./(Rr+0.01); %反射分量。 mi= min(min(Rl)); ma= max(max(Rl)); t=(mi+ma)./2;

for i=1:m %对反射分量进行拉伸。 for j=1:n

if Rl(i,j)>=mi&&Rl(i,j)<=t

Rl1(i,j)=mi+(t-mi)*[(Rl(i,j)-mi)./(t-mi)]^2; end

if Rl(i,j)>t&&Rl(i,j)<=ma

Rl1(i,j)=ma-(ma-t)*[(ma-Rl(i,j))./(ma-t)]^2; end end end

Ir_double=Rr.*Rl1;%增强后的图像。 %%%对G分量操作同R分量%%%% [m,n]=size(G); G0=double(G);

Gfft2=fft2(G0); sigma=100; for i=1:m for j=1:n

F(i,j)=exp(-((i-m/2)^2+(j-n/2)^2)/(2*sigma*sigma)); end end

F = F./(sum(F(:))); Ffft=fft2(double(F)); DG0=Gfft2.*Ffft; DG0=fftshift(DG0);

11

DG=ifft2(DG0);

DGdouble=double(DG); u=mean2(DGdouble); v=std2(DGdouble); MIN = u-3*v; MAX = u+3*v; for i=1:m for j=1:n

if DGdouble(i,j)<=MIN Rg(i,j)=0; end

if DGdouble(i,j)>MIN&&DGdouble(i,j)=MAX Rg(i,j)=1; end end end

Rl=(G0+0.01)./(Rg+0.01); mi=min(min(Rl)); ma=max(max(Rl)); t=(mi+ma)./2; for i=1:m for j=1:n

if Rl(i,j)>mi&&Rl(i,j)

Rl1(i,j)=mi+(t-mi)*[(Rl(i,j)-mi)./(t-mi)]^2; end

if Rl(i,j)>t&&Rl(i,j)

Rl1(i,j)=ma-(ma-t)*[(ma-Rl(i,j))./(ma-t)]^2; end end end

Ig_double=Rg.*Rl1;

%%%对B分量操作同R分量%%%

12

[m,n]=size(B); B0=double(B);

Bfft2=fft2(B0); sigma=100; for i=1:m for j=1:n

F(i,j)=exp(-((i-m/2)^2+(j-n/2)^2)/(2*sigma*sigma)); end end

F = F./(sum(F(:)));

Ffft=fft2(double(F));

DB0=Bfft2.*Ffft;DB0=fftshift(DB0); DB=ifft2(DB0);

DBdouble=double(DB); u=mean2(DBdouble); v=std2(DBdouble);

u=mean2(DBdouble); v=std2(DBdouble); MIN = u-3*v; MAX = u+3*v; for i=1:m for j=1:n

if DBdouble(i,j)<=MIN Rb(i,j)=0; end

if DBdouble(i,j)>MIN&&DBdouble(i,j)=MAX Rb(i,j)=1; end end

13

end

Rl=(B0+0.01)./(Rb+0.01); mi=min(min(Rl)); ma=max(max(Rl)); t=(mi+ma)./2; for i=1:m for j=1:n

if Rl(i,j)>mi&&Rl(i,j)

Rl1(i,j)=mi+(t-mi)*[(Rl(i,j)-mi)./(t-mi)]^2; end

if Rl(i,j)>t&&Rl(i,j)

Rl1(i,j)=ma-(ma-t)*[(ma-Rl(i,j))./(ma-t)]^2; end end end

Ib_double=Rb.*Rl1;

Final=cat(3,uint8(Ir_double),uint8(Ig_double),uint8(Ib_double)); %将三通道图像合并。 figure,imshow(Final); %显示处理后的图像。

%%%MSR算法%%%% f=imread('tokyo_input.jpg');

fr=f(:, :, 1); fg=f(:, :, 2); fb=f(:, :, 3); mr=mat2gray(im2double(fr)); mg=mat2gray(im2double(fg)); mb=mat2gray(im2double(fb));%%数据类型归一化。

alf1=1458; %定义标准差alf=a^2/2 a=54 n=161;%定义模板大小。 n1=floor((n+1)/2);%确定中心。 for i=1:n for j=1:n

b(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*alf1))/(pi*alf1); %高斯函数。 end end

nr1 = imfilter(mr,b,'conv', 'replicate');ng1 = imfilter(mg,b,'conv', 'replicate');nb1 = imfilter(mb,b,'conv', 'replicate');%卷积滤波。

ur1=log(nr1); ug1=log(ng1); ub1=log(nb1);

14

tr1=log(mr);tg1=log(mg);tb1=log(mb);

yr1=(tr1-ur1)/3;yg1=(tg1-ug1)/3;yb1=(tb1-ub1)/3; alf2=53.38; %定义标准差alf=a^2/2 a=10.3325 x=31;%定义模板大小。 x1=floor((n+1)/2);%确定中心。 for i=1:n for j=1:n

a(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*alf2))/(6*pi*alf2); %高斯函数。 end end

nr2 = imfilter(mr,a,'conv', 'replicate');ng2 = imfilter(mg,a,'conv', 'replicate');nb2 = imfilter(mb,a,'conv', 'replicate');%卷积滤波。

ur2=log(nr2); ug2=log(ng2); ub2=log(nb2); tr2=log(mr);tg2=log(mg);tb2=log(mb);

yr2=(tr2-ur2)/3;yg2=(tg2-ug2)/3;yb2=(tb2-ub2)/3; alf3=13944.5; %定义标准差alf=a^2/2 a=167 l=501;%定义模板大小。 l1=floor((n+1)/2);%确定中心。 for i=1:n for j=1:n

e(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*alf3))/(4*pi*alf3); %高斯函数。 end end

nr3 = imfilter(mr,e,'conv', 'replicate');ng3 = imfilter(mg,e,'conv', 'replicate');nb3 = imfilter(mb,e,'conv', 'replicate');%卷积滤波。

ur3=log(nr3); ug3=log(ng3); ub3=log(nb3); tr3=log(mr);tg3=log(mg);tb3=log(mb);

yr3=(tr3-ur3)/3;yg3=(tg3-ug3)/3;yb3=(tb3-ub3)/3; dr=yr1+yr2+yr3;dg=yg1+yg2+yg3;db=yb1+yb2+yb3;

cr=im2uint8(dr); cg=im2uint8(dg); cb=im2uint8(db); z=cat(3, cr, cg, cb);

figure, imshow(z)%%%显示处理后的图像

15

本文来源:https://www.bwwdw.com/article/nn4d.html

Top