智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码

智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码


摘要:Otsu 方法是应用最广泛的图像分割法之一,该方法也叫最大类间方法阈值分割法,选择分割阈值的标准是图像的类间方差达到最大或者类内方差最小。Otsu 阈值分割法可以从单阈值扩展到多级阈值分割,多阈值分割图像时采用多个不同的阈值将图像分割为多个不同的区域或目标。将智能算法应用于多阈值的寻找,能大大加快算法的速度。

1.Otsu阈值分割法原理

Otsu 阈值分割法是日本学者 Otsu 提出来的。假设图像大小为 M × N M × N M×N,图像灰度级范围为 [ 0 , L - 1 ] [0,L - 1] 0L1 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] 0T的像素点归为 C 0 C_0 C0 类,灰度级为 [ T + 1 , L - 1 ] [T + 1,L - 1] T+1L1的像素点为 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=0Tpi(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+1L1pi=1P0(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=0T(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+1L1(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=1Lipi=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(lT<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(lT<L){δw2(T)}(9)
单阈值 Otsu 分割法可以扩展到多级阈值分割法。假设有 n − 1 n-1 n1个阈值 T 1 , T 2 , . . . , T n − 1 T_1,T_2,...,T_{n-1} T1,T2,...,Tn1 将图像分为 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={Tn1+1,Tn1+2,...,L1},各类出现的概率分别表示为 P 0 , P 1 , . . . , P n − 1 P_0,P_1,...,P_{n-1} P0,P1,...,Pn1,方差表示为 δ 0 2 , δ 1 2 , . . . , δ n − 1 2 \delta_0^2,\delta_1^2,...,\delta_{n-1}^2 δ02,δ12,...,δn12,均值为 u 0 , u 1 , . . . , u n − 1 u_0,u_1,...,u_{n-1} u0,u1,...,un1

则有:
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=TkTk+11pi(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=TkTk+11ipi(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=TkTk+11(iuk)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=01n1;T0=0Tn=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=0n1Piδ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,...,Tn1}=argmax(lT<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,...,Tn1}=argmin(lT<L){δw2}(15)

2.基于灰狼优化(GWO)的多阈值分割

由上述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,...,Tn1}=argmax(lT<L){δb2}(14)
设置阈值分割的个数,寻优边界为0到255(因为图像的像素值范围为0-255),设置相应的灰狼算法参数(灰狼算法具体原理及代码参照我之前写灰狼算法原理:https://blog.csdn.net/u011835903/article/details/107716390)。

3.算法结果:

以lena图像为例:

在这里插入图片描述

单阈值结果:

在这里插入图片描述

3阈值结果:

在这里插入图片描述

4阈值结果:

在这里插入图片描述

4.参考文献:

[1]袁小翠,黄志开,马永力,刘宝玲.Otsu阈值分割法特点及其应用分析[J].南昌工程学院学报,2019,38(01):85-90+97.

5.Matlab代码:

基于穷举法的二维Otsu图像阈值分割
基于灰狼算法的二维Otsu图像阈值分割
麻雀算法优化的otsu多阈值分割
粒子群算法优化的otsu多阈值分割
灰狼算法优化的otsu多阈值分割
人工蜂群算法优化的otsu多阈值分割
鲸鱼算法优化的otsu多阈值分割
萤火虫算法优化的otsu多阈值分割
布谷鸟算法优化的otsu多阈值分割
海鸥算法优化的otsu多阈值分割
鸡群算法优化的otsu多阈值分割
花授粉算法优化的otsu多阈值分割
头脑风暴算法优化的otsu多阈值分割
蝗虫算法优化的otsu多阈值分割
鸟群算法优化的otsu多阈值分割
基于差分进化的otsu多阈值分割
基于遗传算法的otsu多阈值分割

个人资料介绍

  • 10
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值