局部閾值法
它是把原始圖像分為幾個小的子圖像,再對每個子圖像求出最佳閾值。因此效果較好,但開銷較大,且局部大小不太好確定,太小容易失真,太大效果不顯著。
動態(tài)閾值法
它的閾值求取方法不僅取決于該像素的灰度值及其領域內(nèi)像素灰度值, 而且還與像素的坐標位置有關, 這種方法靈活性大, 但是復雜度高, 計算量和時間開銷都比較大。
而岡薩雷斯寫的那本書 數(shù)字圖像處理 里面,給出了一種最小誤差閾值,通過利用共軛梯度法對灰度直方圖進行雙峰的高斯密度曲線進行擬合,求取最佳閾值,效果相當好,但是計算太大,而且對于雙峰不顯著的圖像比較難處理,還需進行附加的單峰檢測,并進行插值處理,由于過于復雜且實現(xiàn)也相當困難。

split_2
而本文采用具有自適應性的OTSU局部閾值法來分割圖像,并對OTSU和局部閾值法進行了改進,不僅提高了性能而且改善了分割效果,對于亮度不均勻的圖像也能實現(xiàn)較好的分割。
最大類間方差法(OTSU)
由Otsu于1978年提出的最大類間方差法以其計算簡單、穩(wěn)定有效,一直廣為使用。其主要思想就是選取閾值使其類內(nèi)方差最小化或類間方差最大化。Otsu算法不僅計算簡單,而且能夠應用于多閾值確定,因此可以說是一種相當好的閾值選取方法。
我們通常采用最大化類間方差,來實現(xiàn)閾值分割,其類間方差定義為:

otsu_1
其中
|| u || 圖像中總的灰度均值 ||
|| u1 || 圖像中小于閾值T的像素灰度均值 ||
|| u2 || 圖像中大于閾值T的像素灰度均值 ||
|| n1 || 圖像中小于閾值T的像素數(shù) ||
|| n2 || 圖像中大于閾值T的像素數(shù) ||
因此,只需通過遍歷256個灰度級,尋找使其類間方差最大的那個灰度值就是最佳閾值T。
OTSU的實現(xiàn)與改進
然而如果每次遍歷都需要重新計算閾值兩邊的均值與像素數(shù)的話計算量是相當大的,如果能夠在下次遍歷時利用上次計算的結果,那么計算量可以大大減少。
假設灰度直方圖為,圖像總均值為,圖像總像素數(shù)為,那么其遞推方式如下:

otsu_2
為了進一步簡化計算,我們可以通過用

otsu_3
來替換,得到

otsu_4
由于n在遞歸中不變可以省略,因此可以改為

otsu_5
由于本文是針對字符圖像的分割,由于字符的筆畫通常較細,通常只占圖像的1/4都不到,因此可以適當?shù)恼{(diào)整閾值,以實現(xiàn)較好的分割效果,改進后的閾值為

otsu_6
局部閾值的實現(xiàn)與改進
然而在實際圖像中, 由于噪聲或其他干擾等因素的影響,OTSU閾值分割并不能使圖像分割得到滿意的結果, 往往會產(chǎn)生嚴重的分割錯誤。這是因為圖像的灰度直方圖分布不一定
出現(xiàn)明顯的峰和谷, 像素灰度值僅僅反映了像素灰度級的幅值大小, 并沒有反映出像素與鄰域的空間相關信息。
通過具體的實驗發(fā)現(xiàn):
當圖像亮度分布不均勻時,往往無法得到好的分割效果,通常會出現(xiàn)大塊的黑塊,或者過渡分割而丟失信息的情況。
因此,可以通過對圖像進行分塊,針對每一小塊進行OTSU分割,可以減少這些情況的發(fā)生,但是這又會出現(xiàn)不希望的“棋盤”效果,為了避免這種情況的發(fā)生,可以采用如下改進的局部閾值算法: