智能优化算法应用:基于群居蜘蛛算法与双伽马校正的图像自适应增强算法 - 附代码
摘要:本文主要介绍基于群居蜘蛛算法与双伽马校正的图像自适应增强算法。
1.全局双伽马校正
设图像的灰度值范围被归一化到[0, 1]范围之内,基于全局亮度的双伽马调整函数(Bilateral Gamma Adjustment, BiGA)的图像增强方法该函数由 2个伽马函数Ga 和Gb 融合而成,其数学表达式如下:
G
a
(
x
)
=
x
1
/
r
(1)
G_a(x) = x^{1/r} \tag{1}
Ga(x)=x1/r(1)
G b ( x ) = 1 − ( 1 − x ) 1 / r (2) G_b(x)=1-(1-x)^{1/r} \tag{2} Gb(x)=1−(1−x)1/r(2)
G ( x ) = α G a ( x ) + ( 1 − α ) G b ( x ) (3) G(x) = \alpha G_a(x) + (1-\alpha)G_b(x) \tag{3} G(x)=αGa(x)+(1−α)Gb(x)(3)
式中 x x x 是输入图像的灰度值, r r r 是可调节变量,用以调整图像增强程度,一般取 r = 2.5 r =2.5 r=2.5, α \alpha α 是调节参数,取值范围为[0, 1]。 G a ( x ) G_a(x) Ga(x) 是一个凸函数, G b ( x ) G_b(x) Gb(x)用于增强暗区域。 是一个凹函数,用于抑制图像的亮区域。最终 BiGA 增强算法的调整函数 G ( x ) G(x) G(x)是由 G a ( x ) G_a(x) Ga(x)和 G b ( x ) G_b(x) Gb(x) 取加权得到的。
使用 BiGA 对图像进行校正之前,首先利用式(4)进行归一化理,然后利用式(5)进行双伽马函数校正图像,最后,采用式(6)将其取值范围调整到[0,255]之间。
I
1
(
x
,
y
)
=
I
(
x
,
y
)
/
256
(4)
I_1(x,y) = I(x,y)/256 \tag{4}
I1(x,y)=I(x,y)/256(4)
I 2 ( x , y ) = G ( I 1 ( x , y ) ) (5) I_2(x,y)=G(I_1(x,y)) \tag{5} I2(x,y)=G(I1(x,y))(5)
I ( x , y ) = I 2 ( x , y ) ∗ 256 (6) I(x,y) = I_2(x,y)*256 \tag{6} I(x,y)=I2(x,y)∗256(6)
2.群居蜘蛛算法
群居蜘蛛算法原理请参考:https://blog.csdn.net/u011835903/article/details/108406547
3.适应度函数设计
本文评价函数设计如下:
f
i
t
n
e
s
s
=
α
1
∗
H
+
α
2
∗
S
+
α
3
∗
l
o
g
(
S
t
v
)
(7)
fitness = \alpha_1*H + \alpha_2*S + \alpha_3*log(Stv) \tag{7}
fitness=α1∗H+α2∗S+α3∗log(Stv)(7)
其中
α
1
,
α
2
,
α
3
\alpha_1,\alpha_2,\alpha_3
α1,α2,α3为常数,代表目标函数的相对重要性。本文将熵值、边缘内容和灰度标准方差等同取值,即
α
1
=
α
2
=
α
3
=
1
/
3
\alpha_1 = \alpha_2 =\alpha_3 = 1/3
α1=α2=α3=1/3.
式(7)中
H
H
H 代表测试图像的熵值,图像的熵值越大,代表图像所含的信息量越大,细节越丰富。
H
=
−
∑
i
=
0
255
p
(
i
)
l
o
g
2
(
p
(
i
)
)
(8)
H = -\sum_{i=0}^{255}p(i)log_2(p(i)) \tag{8}
H=−i=0∑255p(i)log2(p(i))(8)
其中
p
(
i
)
p(i)
p(i)某个灰度值(
i
i
i)在该图像中出现的概率。
式(7)中
S
S
S 代表由
s
o
b
e
l
sobel
sobel 边缘检测算子计算的测试图像的边缘内容,其值越大,代表测试图像包含的边缘信息越多,图像对比度越好。其定义式如下:
S
=
n
_
e
d
g
e
s
(
E
)
T
(9)
S = \frac{n\_edges(E)}{T} \tag{9}
S=Tn_edges(E)(9)
n
_
e
d
g
e
s
(
E
)
n\_edges(E)
n_edges(E)表示由 sobel边缘检测算子检测到的增强图像中的边缘像素的数量,
T
T
T 是增强图像中的像素总数。
式(7)中 S t v Stv Stv 为测试图像的灰度标准方差,一般情况下, S t v Stv Stv 值越大,所测图像的对比度就越好,越适合人眼观察。
所以对于群居蜘蛛算法,寻优即寻找使得 f i t n e s s fitness fitness最大,转换成寻最小值,即 − f i t n e s s -fitness −fitness最小。
4.实验与算法结果
群居蜘蛛算法参数设定如下:
%设定群居蜘蛛算法参数
SearchAgents_no=30; % 种群数量
Max_iteration=50; % 设定最大迭代次数
lb = 0; %下边界
ub = 1; %上边界
dim = 1; %1维度即alpha参数
fobj = @(X) fun(I,X);%适应度函数
5.参考文献
[1]刘金华. 基于元启发式算法的低照度图像增强研究[D].郑州轻工业大学,2020.
[2] Sazzad T S, Hasan M Z, Mohammed F, et al. Gamma encoding on image processing considering human visualization, analysis and comparison[J]. International Journal on Computer Science and Engineering, 2012, 4(12): 1868.