3.2-阈值分割
閾值分割
閾值分割法是一種傳統的圖像分割方法, 因其實現簡單、計算量小、性能較穩定而成為圖像分割中最基本和應用最廣泛的分割技術。閾值分割法的基本原理是:通過設定不同的特征閾值, 把圖像像素點分為具有不同灰度級的目標區域和背景區域的若干類。它特別適用于目標和背景占據不同灰度級范圍的圖像,已被應用于很多領域,其中閾值的選取是圖像閾值分割方法中的關鍵技術
閾值選取方法
OTSU法
OTSU法,又稱最大類間方差法,是目前公認的,對閾值分割選擇相對理,且分割效果良好的辦法。其理論依據為:按照圖像的灰度特性,將圖像分為背景和物體兩部分(二值化),通過計算得到一個閾值,該閾值滿足:使背景和物體的像素差異最大,即類間方差最大。
OTSU的基本思想:設定分割閾值,將像素f(a, b)分為對象和背景二類;通過最大化類間方差并最小化類內方差得到目標閾值。
假設一副大小為 M×\times×N 圖像的像素分為 L 個灰度級{0,1,2,…,L-1},nin_ini?為灰度級i的像素個數,則像素總數公式為:
M×N=n0+n1+n2+...+nL?1M\times N=n_0+n_1+n_2+...+n_{L-1} M×N=n0?+n1?+n2?+...+nL?1?
灰度級的概率為:
Pi=niMNP_i = \frac{n_i}{MN} Pi?=MNni??
其中,概率滿足 ∑i=0L?1Pi=1\sum_{i=0}^{L-1}P_i = 1i=0∑L?1?Pi?=1 且 pi≥0p_i \geq 0pi?≥0 。若目標閾值為 k,將所有像素分為灰度值為 [0,k] 的背景類 C1C_1C1? 和 [k+1,L-1] 的對象類 C2C_2C2? 。P1(k)P_1 (k)P1?(k) 和 P2(k)P_2 (k)P2?(k) 為 C1C_1C1? 和 C2C_2C2? 中的概率,可由式(3)(4)計算得到:
P1(k)=∑i=0kPiP_1(k)=\sum_{i=0}^{k}P_i P1?(k)=i=0∑k?Pi?
P2(k)=∑i=k+1L?1Pi=1?P1(k)P_2(k)=\sum_{i=k+1}^{L-1}P_i=1-P_1(k) P2?(k)=i=k+1∑L?1?Pi?=1?P1?(k)
其中 m1(k)m_1(k)m1?(k) 和 m2(k)m_2(k)m2?(k) 分別為 C1C_1C1? 和 C2C_2C2? 像素的灰度平均值,可由式(5)(6)計算得到:
m1(k)=∑i=0kip(i∣C1)=1P1(k)∑i=0kipim_1(k)=\sum_{i=0}^{k}ip(i|C_1)=\frac{1}{P_1(k)}\sum_{i=0}^{k}ip_i m1?(k)=i=0∑k?ip(i∣C1?)=P1?(k)1?i=0∑k?ipi?
m2(k)=∑i=k+1L?1ip(i∣C2)=1P2(k)∑i=k+1L?1ipim_2(k)=\sum_{i=k+1}^{L-1}ip(i|C_2)=\frac{1}{P_2(k)}\sum_{i=k+1}^{L-1}ip_i m2?(k)=i=k+1∑L?1?ip(i∣C2?)=P2?(k)1?i=k+1∑L?1?ipi?
mGm_GmG? 為圖像的平均灰度值,θ\thetaθ 為類間平方差,可有式(7)計算得到:
θ=P1(k)(m1(k)?mG)2+P2(k)(m2(k)?mG)2=P1(k)P2(k)(m1(k)?m2(k))2\theta = P_1(k){(m_1(k)-m_G)}^2 + P_2(k){(m_2(k)-m_G)}^2 = P_1(k)P_2(k){(m_1(k)-m_2(k))}^2 θ=P1?(k)(m1?(k)?mG?)2+P2?(k)(m2?(k)?mG?)2=P1?(k)P2?(k)(m1?(k)?m2?(k))2
由式(7)可得式(8):
θ(T)=max?0≤k≤L?1θ(k)\theta (T) = \max\limits_{0\leq k \leq L-1} \theta(k) θ(T)=0≤k≤L?1max?θ(k)
其中,T即為目標閾值,輸入圖像就可以按照閾值T進行分割,式(9):
最大熵閾值分割
由于 OTSU 在分割圖像時只考慮將背景和對象分割最大化,而忽略了邊緣和弱對象等信息,故此方法提出與最大熵分割相結合,使分割時能夠將對象最大化分割的同時保留更多信息。最大熵原理求閾值與 OTSU 類似,OTSU 是求取最佳閾值將圖像分為對象和背景求取最大方差,最大熵是求取最佳閾值使對象和背景兩個部分熵之和最大。熵的公式為:
H(I)=∑u,vp(I(u,v))?log?b(1p(I(u,v)))=?∑u,vp(g)?log?b(p(g))H(I) = \sum_{u,v}p(I(u,v))\cdot \log_b(\frac{1}{p(I(u,v))}) = -\sum_{u,v}p(g)\cdot \log_b(p(g)) H(I)=u,v∑?p(I(u,v))?logb?(p(I(u,v))1?)=?u,v∑?p(g)?logb?(p(g))
約束條件為∑i=0L?1Pi=1,Pi≥0,Pn=∑i=0tPi\sum_{i=0}^{L-1}P_i=1, P_i \geq 0, P_n = \sum_{i=0}^t P_i∑i=0L?1?Pi?=1,Pi?≥0,Pn?=∑i=0t?Pi? ,b 取常數2,I(u,v)I(u,v)I(u,v) 為灰度值,假設閾值為 t,A 為 {0,1,2,…,t} 的灰度分布,B 為{t+1,t+2,…,L-1} 的灰度分布,則兩個概率密度相關的熵分別為 H(A) 和 H(B),由式(10)計算得:
H(A)=?∑i=0tPiPnln?PiPnH(A)=-\sum_{i=0}^t \frac{P_i}{P_n} \ln \frac{P_i}{P_n} H(A)=?i=0∑t?Pn?Pi??lnPn?Pi??
H(B)=?∑i=t+1L?1Pi1?Pnln?Pi1?PnH(B)=-\sum_{i=t+1}^{L-1} \frac{P_i}{1-P_n} \ln \frac{P_i}{1-P_n} H(B)=?i=t+1∑L?1?1?Pn?Pi??ln1?Pn?Pi??
定義函數 φ(t)\varphi(t)φ(t) 為 H(A) 和 H(B) 的和:
φ(t)=H(A)+H(B)\varphi(t)=H(A)+H(B) φ(t)=H(A)+H(B)
則最佳閾值為:
t=arg?tmax?φ(t)=?∑i=0tPiPnln?PiPn?∑i=t+1L?1Pi1?Pnln?Pi1?Pnt=\arg _t\max \varphi (t)= -\sum_{i=0}^{t} \frac{P_i}{P_n}\ln \frac{P_i}{P_n} - \sum_{i=t+1}^{L-1}\frac{P_i}{1-P_n} \ln \frac{P_i}{1-P_n} t=argt?maxφ(t)=?i=0∑t?Pn?Pi??lnPn?Pi???i=t+1∑L?1?1?Pn?Pi??ln1?Pn?Pi??
基于迭代的閾值分割
迭代法選擇初始的估計閾值,按照某種原則,通過迭代不斷改變這一估值,直到滿足給定的準則為止。迭代法實現了在實際處理中,圖像之間有較大變化時,對每一幅圖片進行自動估值閾值,達到良好分割效果。
統計圖像灰度直方圖,求出圖像的最大灰度和最小灰度值,分別記為 ZmaxZ_{max}Zmax? 和 ZminZ_{min}Zmin? ,令初始閾值:
T0=Zmax+Zmin2T_0=\frac{Z_{max}+Z_{min}}{2} T0?=2Zmax?+Zmin??
根據閾值TkT_kTk? 將圖像分割為前景和背景,計算小于 T0T_0T0? 所有灰度的均值 Z0Z_0Z0? 和大于 T0T_0T0? 的所有灰度的均值 ZBZ_BZB? ,求出新閾值:
Tk+1=Z0+ZB2T_{k+1} = \frac{Z_0+Z_B}{2} Tk+1?=2Z0?+ZB??
若 Tk=Tk+1T_k=T_{k+1}Tk?=Tk+1? 則所得即為閾值,否則轉(15)進行迭代計算,直到求出最佳閾值。
總結
- 上一篇: 非因解读|Digital Spatial
- 下一篇: 一文十大排序算法(动画图解)