本文主要是介绍1979-A threshold selection method from gray-level histograms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 论文简介
《A threshold selection method from gray-level histograms》是由日本学者大津于 1979 年发表在 IEEE TRANSACTIONS ON SYSTEMS 上的一篇论文。该论文提出了一种基于图像灰度直方图的阈值化方法,计算简单,且不受图像亮度和对比度的影响,被称为阈值分割领域的最佳算法之一。以下称 Otsu 法。
2 算法原理
假设原始图像的最大灰度级为 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∑Lpi=1(2)
现假设通过 k k k 级阈值将直方图分为 C 0 C_0 C0 和 C 1 C_1 C1 两类(目标和背景),则 C 0 C_0 C0 和 C 1 C_1 C1 的累积概率、均值分别为:
ω 0 = ∑ i = 1 k p i (3) \omega_0={\sum_{i=1}^{k}p_i} \tag{3} ω0=i=1∑kpi(3) ω 1 = ∑ i = k + 1 L p i (4) \omega_1={\sum_{i=k+1}^{L}p_i} \tag{4} ω1=i=k+1∑Lpi(4) μ 0 = ∑ i = 1 k i p i / ω 0 (5) \mu_0={\sum_{i=1}^{k}ip_i/{\omega_0}} \tag{5} μ0=i=1∑kipi/ω0(5) μ 1 = ∑ i = k + 1 L i p i / ω 1 (6) \mu_1={\sum_{i=k+1}^{L}ip_i/{\omega_1}} \tag{6} μ1=i=k+1∑Lipi/ω1(6)
故 k k k 级阈值下的类间方差 σ B \sigma_B σB 为:
σ B = ω 0 ω 1 ( μ 1 − μ 0 ) 2 (7) \sigma_B={\omega_0}{\omega_1}{\left({\mu_1}-{\mu_0}\right)}^2 \tag{7} σB=ω0ω1(μ1−μ0)2(7)
最佳阈值 k ∗ k^* k∗ 计算如下:
σ B ( k ∗ ) = max 1 ≤ k < L σ B ( k ) (8) {\sigma_B\left(k^*\right)}={\max_{1{\leq}k<L}}{\sigma_B\left(k\right)} \tag{8} σB(k∗)=1≤k<LmaxσB(k)(8)
值得注意的是,该方法非常容易拓展至多阈值的情形。
3 实验结果
4 参考文献
[1] Otsu N. A threshold selection method from gray-level histograms[J]. IEEE transactions on systems, man, and cybernetics, 1979, 9(1): 62-66.
5 代码链接
代码。
这篇关于1979-A threshold selection method from gray-level histograms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!