智能优化算法应用:基于卷尾猴算法的Otsu图像多阈值分割-附代码
摘要:Otsu 方法是应用最广泛的图像分割法之一,该方法也叫最大类间方法阈值分割法,选择分割阈值的标准是图像的类间方差达到最大或者类内方差最小。Otsu 阈值分割法可以从单阈值扩展到多级阈值分割,多阈值分割图像时采用多个不同的阈值将图像分割为多个不同的区域或目标。将智能算法应用于多阈值的寻找,能大大加快算法的速度。
1.Otsu阈值分割法原理
Otsu 阈值分割法是日本学者 Otsu 提出来的。假设图像大小为
M
×
N
M × N
M×N,图像灰度级范围为
[
0
,
L
-
1
]
[0,L - 1]
[0,L-1],
n
i
n_i
ni为图像灰度级
i
i
i 的像素点数,灰度级
i
i
i 出现的概率为:
p
i
=
n
i
/
(
M
×
N
)
p_i = n_i /(M × N)
pi=ni/(M×N);对于单阈值分割,图像被分割为两类,灰度级为
[
0
,
T
]
[0,T]
[0,T]的像素点归为
C
0
C_0
C0 类,灰度级为
[
T
+
1
,
L
-
1
]
[T + 1,L - 1]
[T+1,L-1]的像素点为
C
1
C_1
C1 类。设
P
0
(
T
)
、
P
1
(
T
)
P_0 (T)、P_1 (T)
P0(T)、P1(T) 分别表示
C
0
C_0
C0 类和
C
1
C_1
C1 类的出现的概率;
u
0
(
T
)
,
u
1
(
T
)
u_0 (T),u_1 (T)
u0(T),u1(T) 表示
C
0
C_0
C0 类和
C
1
C_1
C1 类的平均灰度级。则有:
P
0
(
T
)
=
∑
i
=
0
T
p
i
(1)
P_0(T)=\sum_{i=0}^{T}p_i\tag{1}
P0(T)=i=0∑Tpi(1)
P 1 ( T ) = ∑ i = T + 1 L − 1 p i = 1 − P 0 ( T ) (2) P_1(T)=\sum_{i=T+1}^{L-1}p_i = 1 - P_0(T)\tag{2} P1(T)=i=T+1∑L−1pi=1−P0(T)(2)
u 0 ( T ) = ∑ i = 0 T ( i p i P 0 ( T ) ) (3) u_0(T)=\sum_{i=0}^T(i\frac {p_i}{P_0(T)})\tag{3} u0(T)=i=0∑T(iP0(T)pi)(3)
u 1 ( T ) = ∑ i = T + 1 L − 1 ( i p i P 1 ( T ) ) (4) u_1(T)=\sum_{i=T+1}^{L-1}(i\frac {p_i}{P_1(T)})\tag{4} u1(T)=i=T+1∑L−1(iP1(T)pi)(4)
图像的平均灰度级表示为:
u
=
∑
i
=
1
L
i
p
i
=
P
0
(
T
)
u
0
(
T
)
+
P
1
(
T
)
u
1
(
T
)
(5)
u = \sum_{i=1}^{L}ip_i=P_0(T)u_0(T)+P_1(T)u_1(T)\tag{5}
u=i=1∑Lipi=P0(T)u0(T)+P1(T)u1(T)(5)
图像的类间方差
δ
b
2
(
T
)
\delta_b^2(T)
δb2(T)表示为:
δ
b
2
(
T
)
=
P
0
(
T
)
(
u
0
(
T
)
−
u
)
2
+
P
1
(
T
)
(
u
1
(
T
)
−
u
)
2
(6)
\delta_b^2(T)=P_0(T)(u_0(T) -u)^2+P_1(T)(u_1(T)-u)^2\tag{6}
δb2(T)=P0(T)(u0(T)−u)2+P1(T)(u1(T)−u)2(6)
图像的类内方差
δ
w
2
(
T
)
\delta_w^2(T)
δw2(T) 表示为
δ
w
2
(
T
)
=
P
0
(
T
)
u
0
2
(
T
)
+
P
1
(
T
)
u
1
2
(
T
)
(7)
\delta_w^2(T)=P_0(T)u_0^2(T)+P_1(T)u_1^2(T)\tag{7}
δw2(T)=P0(T)u02(T)+P1(T)u12(T)(7)
当类间方差达到最大时该灰度级为最优分割阈值,即Otsu 阈值:
T
∗
=
a
r
g
m
a
x
(
l
≤
T
<
L
)
{
δ
b
2
(
T
)
}
(8)
T^* = argmax_{(l\leq T<L)} \{\delta_b^2(T) \}\tag{8}
T∗=argmax(l≤T<L){δb2(T)}(8)
或者当类内方差达到最小时对应的阈值为最优分割阈值:
T
∗
=
a
r
g
m
i
n
(
l
≤
T
<
L
)
{
δ
w
2
(
T
)
}
(9)
T^* = argmin_{(l\leq T<L)} \{\delta_w^2(T) \}\tag{9}
T∗=argmin(l≤T<L){δw2(T)}(9)
单阈值 Otsu 分割法可以扩展到多级阈值分割法。假设有
n
−
1
n-1
n−1个阈值
T
1
,
T
2
,
.
.
.
,
T
n
−
1
T_1,T_2,...,T_{n-1}
T1,T2,...,Tn−1 将图像分为
n
n
n类,表示为
C
0
=
{
0
,
1
,
.
.
.
,
T
1
}
,
.
.
.
.
,
C
n
=
{
T
n
−
1
+
1
,
T
n
−
1
+
2
,
.
.
.
,
L
−
1
}
C_0=\{0,1,...,T_1\},....,C_n=\{T_{n-1}+1,T_{n-1}+2,...,L-1\}
C0={0,1,...,T1},....,Cn={Tn−1+1,Tn−1+2,...,L−1},各类出现的概率分别表示为
P
0
,
P
1
,
.
.
.
,
P
n
−
1
P_0,P_1,...,P_{n-1}
P0,P1,...,Pn−1,方差表示为
δ
0
2
,
δ
1
2
,
.
.
.
,
δ
n
−
1
2
\delta_0^2,\delta_1^2,...,\delta_{n-1}^2
δ02,δ12,...,δn−12,均值为
u
0
,
u
1
,
.
.
.
,
u
n
−
1
u_0,u_1,...,u_{n-1}
u0,u1,...,un−1。
则有:
P
k
=
∑
i
=
T
k
T
k
+
1
−
1
p
i
(10)
P_k = \sum_{i=T_k}^{T_{k+1}-1}p_i\tag{10}
Pk=i=Tk∑Tk+1−1pi(10)
u k = 1 P k P k ∑ i = T k T k + 1 − 1 i p i (11) u_k=\frac{1}{P_k}P_k\sum_{i=T_k}^{T_{k+1}-1}ip_i\tag{11} uk=Pk1Pki=Tk∑Tk+1−1ipi(11)
δ k 2 = ∑ i = T k T k + 1 − 1 ( i − u k ) 2 p i P k (12) \delta_k^2=\sum_{i=T_k}^{T_{k+1}-1}(i-u_k)^2\frac{p_i}{P_k}\tag{12} δk2=i=Tk∑Tk+1−1(i−uk)2Pkpi(12)
其中
k
=
0
,
1
,
…
,
n
−
1
;
T
0
=
0
,
T
n
=
L
k = 0,1,…,n-1;T_0 = 0,T_n = L
k=0,1,…,n−1;T0=0,Tn=L。则图像的类间方差表示为:
δ
b
2
=
∑
i
=
0
n
−
1
P
i
δ
i
2
(13)
\delta_b^2=\sum_{i=0}^{n-1}P_i\delta_i^2\tag{13}
δb2=i=0∑n−1Piδi2(13)
多级最优分割阈值:
{
T
1
∗
,
T
2
∗
,
.
.
.
,
T
n
−
1
∗
}
=
a
r
g
m
a
x
(
l
≤
T
<
L
)
{
δ
b
2
}
(14)
\{T_1^*,T_2^*,...,T_{n-1}^*\} =argmax_{(l\leq T<L)} \{\delta_b^2 \} \tag{14}
{T1∗,T2∗,...,Tn−1∗}=argmax(l≤T<L){δb2}(14)
或者:
{
T
1
∗
,
T
2
∗
,
.
.
.
,
T
n
−
1
∗
}
=
a
r
g
m
i
n
(
l
≤
T
<
L
)
{
δ
w
2
}
(15)
\{T_1^*,T_2^*,...,T_{n-1}^*\} =argmin_{(l\leq T<L)} \{\delta_w^2 \} \tag{15}
{T1∗,T2∗,...,Tn−1∗}=argmin(l≤T<L){δw2}(15)
2.基于卷尾猴优化的多阈值分割
由上述Otsu阈值分割法的原理可知,要得到最终的阈值,需要去寻找阈值,使得类间方差值最大或类内方差值最小。于是可以利用智能优化算法进行阈值的寻优,使得获得最佳阈值。
于是优化的适应度函数就是:
f
u
n
{
T
1
∗
,
T
2
∗
,
.
.
.
,
T
n
−
1
∗
}
=
a
r
g
m
a
x
(
l
≤
T
<
L
)
{
δ
b
2
}
(14)
fun\{T_1^*,T_2^*,...,T_{n-1}^*\} =argmax_{(l\leq T<L)} \{\delta_b^2 \} \tag{14}
fun{T1∗,T2∗,...,Tn−1∗}=argmax(l≤T<L){δb2}(14)
设置阈值分割的个数,寻优边界为0到255(因为图像的像素值范围为0-255),设置相应的卷尾猴算法参数。
卷尾猴算法原理请参考:https://blog.csdn.net/u011835903/article/details/123328669
3.算法结果:
以lena图像为例:
4.参考文献:
[1]袁小翠,黄志开,马永力,刘宝玲.Otsu阈值分割法特点及其应用分析[J].南昌工程学院学报,2019,38(01):85-90+97.