1.算法原理
多尺度Retinex算法
在Retinex算法中,雾化图像的形成可以总结为入射光和反射光的乘积:
I
(
x
,
y
)
=
L
(
x
,
y
)
×
R
(
x
,
y
)
(1)
I(x,y)=L(x,y)\times R(x,y)\tag{1}
I(x,y)=L(x,y)×R(x,y)(1)
其中,I(x,y)表示图像亮度,R(x,y)和L(x,y)分别代表反射分量和照明分量。
用于模拟周围环境的函数类似于通常用于单个神经元感受野的高斯差分函数:
L
(
x
,
y
)
=
I
(
x
,
y
)
∗
F
(
x
,
y
)
(2)
L(x,y)=I(x,y)*F(x,y)\tag{2}
L(x,y)=I(x,y)∗F(x,y)(2)
周围函数F(x,y):
F
(
x
,
y
)
=
K
exp
(
−
x
2
+
y
2
2
σ
2
)
(3)
F(x,y)=K\text{exp}\left(-\frac{x^2+y^2}{2\sigma^2}\right)\tag{3}
F(x,y)=Kexp(−2σ2x2+y2)(3)
其中,σ 是高斯周围空间尺度参数。下面展示不同σ 高斯函数图像,较大的σ 将强调色彩保真度但失去更多图像细节信息,而较小的 σ 则相反。
单尺度Retinex (single-scale Retinex, SSR) 算法:
r
S
S
R
,
i
(
x
,
y
)
=
l
o
g
R
i
(
x
,
y
)
=
log
(
I
i
(
x
,
y
)
)
−
log
(
F
i
(
x
,
y
)
∗
I
i
(
x
,
y
)
)
(4)
\begin{aligned}&r_{SSR,i}(x,y)=\mathrm{log}R_{i}(x,y)\\&=\log(I_{i}(x,y))-\log(F_{i}(x,y)*I_{i}(x,y))\end{aligned}\tag{4}
rSSR,i(x,y)=logRi(x,y)=log(Ii(x,y))−log(Fi(x,y)∗Ii(x,y))(4)
多尺度Retinex(Multi-scale Retinex, MSR) 被提出来通过不同尺度的加权叠加来抵消单一尺度的影响:
R
m
s
r
,
i
=
∑
n
=
1
N
w
n
,
i
r
n
,
i
=
∑
n
=
1
N
w
n
,
i
(
log
(
I
i
(
x
,
y
)
)
−
log
(
F
n
,
i
(
x
,
y
)
∗
I
i
(
x
,
y
)
)
)
(5)
\begin{aligned}&R_{msr,i}=\sum_{n=1}^{N}w_{n,i}r_{n,i}\\&=\sum_{n=1}^{N}w_{n,i}\big(\log(I_{i}(x,y))-\log\big(F_{n,i}(x,y)*I_{i}(x,y)\big)\big)\end{aligned}\tag{5}
Rmsr,i=n=1∑Nwn,irn,i=n=1∑Nwn,i(log(Ii(x,y))−log(Fn,i(x,y)∗Ii(x,y)))(5)
2.多尺度Retinex图像去雾方法
考虑到去雾后的图像颜色自然,细节清晰和信息保留,适应度函数定义为:
P
S
N
R
=
20
⋅
log
10
(
M
A
X
I
M
S
E
)
\mathrm{PSNR}=20\cdot\log_{10}\left(\frac{\mathrm{MAX}_{I}}{\sqrt{\mathrm{MSE}}}\right)
PSNR=20⋅log10(MSEMAXI)
3.结果展示
4.参考文献
[1] Yao L P, Pan Z. The Retinex-based image dehazing using a particle swarm optimization method[J]. Multimedia Tools and Applications, 2021, 80(3): 3425-3442.