《Minimum error thresholding》是由 Kittler 和 Illingworth 于 1986 年发布在 Pattern Recognition 上的一篇论文。该论文假设原始图像中待分割的目标和背景的分布服从高斯分布,然后根据最小误差思想构建最小误差目标函数,最后取目标函数最小时的阈值为最佳分割阈值。以下称最小误差阈值法或最小错误阈值法(Minimum Error Thresholding,MET)。
假设原始图像的最大灰度级为
L
L
L,第
i
i
i 级的像素数用
n
i
n_i
ni? 表示,那么原始图像的总像素数
N
N
N 计算如下:
N
=
n
1
+
n
2
+
.
.
.
+
n
i
+
.
.
.
+
n
L
(1)
{N=n_1+n_2+...+n_i+...+n_L} \tag{1}
N=n1?+n2?+...+ni?+...+nL?(1)归一化直方图
p
i
p_i
pi? 表示如下:
p
i
=
n
i
/
N
,
p
i
≥
0
,
∑
i
=
1
L
p
i
=
1
(2)
{p_i=n_i/N},{\quad \quad} p_i \geq 0,{\sum_{i=1}^Lp_i=1} \tag{2}
pi?=ni?/N,pi?≥0,i=1∑L?pi?=1(2)现假设通过
t
t
t 级阈值将直方图分为目标和背景两类,则目标和背景的均值和方差分别计算如下:
P
0
(
t
)
=
∑
i
=
1
t
p
i
,
P
1
(
t
)
=
∑
i
=
t
+
1
L
p
i
(3)
P_0(t)={\sum_{i=1}^tp_i},P_1(t)={\sum_{i=t+1}^Lp_i} \tag{3}
P0?(t)=i=1∑t?pi?,P1?(t)=i=t+1∑L?pi?(3)
μ
0
(
t
)
=
∑
i
=
1
t
p
i
i
P
0
(
t
)
,
μ
1
(
t
)
=
∑
i
=
t
+
1
L
p
i
i
P
1
(
t
)
(4)
\mu_0(t)=\frac{\sum_{i=1}^tp_ii}{P_0(t)},\mu_1(t)=\frac{\sum_{i=t+1}^Lp_ii}{P_1(t)} \tag{4}
μ0?(t)=P0?(t)∑i=1t?pi?i?,μ1?(t)=P1?(t)∑i=t+1L?pi?i?(4)
σ
0
2
(
t
)
=
∑
i
=
1
t
(
i
?
μ
0
(
t
)
)
2
p
i
P
0
(
t
)
,
σ
1
2
(
t
)
=
∑
i
=
t
+
1
L
(
i
?
μ
1
(
t
)
)
2
p
i
P
1
(
t
)
(5)
\sigma_0^2(t)=\frac{\sum_{i=1}^t(i-\mu_0(t))^2p_i}{P_0(t)},\sigma_1^2(t)=\frac{\sum_{i=t+1}^L(i-\mu_1(t))^2p_i}{P_1(t)} \tag{5}
σ02?(t)=P0?(t)∑i=1t?(i?μ0?(t))2pi??,σ12?(t)=P1?(t)∑i=t+1L?(i?μ1?(t))2pi??(5)故根据最小误差思想构建最小误差目标函数如下:
J
(
t
)
=
1
+
2
[
P
0
(
t
)
ln
?
σ
0
(
t
)
+
P
1
(
t
)
ln
?
σ
1
(
t
)
]
?
2
[
P
0
(
t
)
ln
?
P
0
(
t
)
+
P
1
(
t
)
ln
?
P
1
(
t
)
]
(6)
J(t)=1+2[P_0(t)\ln{\sigma_0(t)}+P_1(t)\ln{\sigma_1(t)}]-2[P_0(t)\ln{P_0(t)}+P_1(t)\ln{P_1(t)}] \tag{6}
J(t)=1+2[P0?(t)lnσ0?(t)+P1?(t)lnσ1?(t)]?2[P0?(t)lnP0?(t)+P1?(t)lnP1?(t)](6)图像最佳阈值
t
?
t^*
t? 计算如下:
J
(
t
?
)
=
min
?
1
≤
t
<
L
J
(
t
)
(7)
J(t^*)={\min_{1{\leq}t<L}}J(t) \tag{7}
J(t?)=1≤t<Lmin?J(t)(7)
[1] Kittler J, Illingworth J. Minimum error thresholding[J]. Pattern recognition, 1986, 19(1): 41-47.
代码链接:https://mbd.pub/o/bread/ZZqVk5pw。