王劉奎 史偉民 楊亮亮,2*
1(浙江理工大學(xué)機(jī)械與自動(dòng)控制學(xué)院 浙江 杭州 310018)2(杭州匯萃智能科技有限公司 浙江 杭州 311121)
近年來(lái)隨著科學(xué)技術(shù)的不斷發(fā)展,工業(yè)自動(dòng)化水平的逐步提高,機(jī)器視覺(jué)圖像處理領(lǐng)域受到了人們的廣泛關(guān)注,成為了大量學(xué)者研究的焦點(diǎn)。文字字符識(shí)別在信件郵寄識(shí)別、歷史文獻(xiàn)修復(fù)、汽車車牌識(shí)別等有關(guān)文字的應(yīng)用領(lǐng)域占據(jù)著至關(guān)重要的地位,而較好地把文本信息從實(shí)際情況較復(fù)雜的背景中分割出來(lái)則是視覺(jué)檢測(cè)預(yù)處理中最重要的部分,其中文本二值化是必不可少且極其關(guān)鍵的。而在實(shí)際拍攝過(guò)程中,由于光源方向、拍攝角度、物體表面反射等因素,往往使得采集的圖像出現(xiàn)局部過(guò)亮、局部過(guò)暗、明暗交錯(cuò)等光照不均勻現(xiàn)象,嚴(yán)重影響后續(xù)處理,完整有效地提取出高質(zhì)量的文本信息無(wú)疑對(duì)整個(gè)項(xiàng)目的成敗起著關(guān)鍵作用。
為了把文字從光照不均勻的背景中提取出來(lái),閾值分割是最常用的方法,按照參與運(yùn)算的像素點(diǎn)的空間范圍可分為全局閾值分割法和局部閾值分割法[1]。
全局閾值分割法根據(jù)整幅圖的直方圖或灰度值的空間分布來(lái)計(jì)算出一個(gè)閾值[2],依此來(lái)區(qū)分目標(biāo)和背景,經(jīng)典的全局閾值算法有Ostu法、迭代法、最小誤差法、簡(jiǎn)單統(tǒng)計(jì)、基于熵的閾值法等[3]。由于全局閾值分割法未考慮圖像的局部灰度信息,對(duì)背景和目標(biāo)灰度值多樣性單一,存在明顯差異、直方圖呈現(xiàn)雙峰分布的圖像處理效果良好,而對(duì)灰度分布不均勻、峰值多樣無(wú)規(guī)律的圖像處理效果非常差[4]。
局部閾值分割法按處理思想不同又可細(xì)分為局部分塊閾值法和局部鄰域自適應(yīng)閾值法[5]。局部分塊閾值法根據(jù)圖像光照情況進(jìn)行分塊,再對(duì)每塊進(jìn)行全局閾值分割法進(jìn)行分割。該方法需要圖像存在較明顯的灰度邊界區(qū)域,對(duì)于灰度差別不明顯的圖像處理效果欠佳[6],而且處理后存在明顯分塊邊界,整體效果差,在文檔二值化處理中應(yīng)用不廣泛。
局部鄰域自適應(yīng)閾值法通過(guò)定義合適的模板,并通過(guò)模板鄰域點(diǎn)與考察點(diǎn)的數(shù)學(xué)關(guān)系進(jìn)行運(yùn)算,來(lái)確定當(dāng)前考察點(diǎn)的灰度值,該方法很好地利用了考察點(diǎn)的鄰近區(qū)域的灰度特性,實(shí)現(xiàn)了自適應(yīng)閾值檢測(cè)。經(jīng)典的局部閾值分割法有Niblack法[7]、Bernsen法[8]、Sauvola法[9]等,以上方法雖然考慮了局部鄰域灰度信息,但參與運(yùn)算的不具有代表性的像素點(diǎn)過(guò)多,當(dāng)目標(biāo)和背景區(qū)分界線不明顯時(shí),分割效果不佳,而且容易出現(xiàn)筆畫斷裂和偽影現(xiàn)象。Wellner[10]提出了一種根據(jù)每點(diǎn)距離像素中心位置不同加權(quán)不同,最后求均值乘以比例系數(shù)確定閾值的思想。針對(duì)該算法邊緣和處理速度慢的問(wèn)題,Bradley等[11]提出了一種面積像素表求和的思想,極大簡(jiǎn)化了運(yùn)算,提高了速度,處理效果極佳。Valizadeh等[12]通過(guò)把圖像灰度值類比三維地形提出了Water Flow模型理論,山峰對(duì)應(yīng)灰度值較高區(qū)域,山谷對(duì)應(yīng)灰度值較低區(qū)域,地形的差異使得光照在不同地形情況呈現(xiàn)了光照不均勻現(xiàn)象。
本文仔細(xì)研究了以上方法,并在觀察不均勻文本圖像灰度值曲線的變化規(guī)律后,發(fā)現(xiàn)光線非常均勻的部分鄰近灰度值不變,基本上都是背景或者文字比劃部分,在運(yùn)算時(shí)已經(jīng)大量重復(fù)。而灰度跳躍明顯的區(qū)域多是文字和背景的交界區(qū)域,包含了大量的文字邊緣輪廓信息。對(duì)于所需的灰度值跳躍的點(diǎn),本文在一個(gè)鄰域里比較篩選出所有波峰點(diǎn)和波谷點(diǎn)求均值后,再通過(guò)一定差值比例加權(quán)運(yùn)算選出最佳的閾值分割點(diǎn),結(jié)果表明處理效果優(yōu)于傳統(tǒng)局部閾值分割算法。
Niblack算法是通過(guò)當(dāng)前目標(biāo)考察點(diǎn)及其模板算子鄰域內(nèi)像素點(diǎn)灰度值的平均值及標(biāo)準(zhǔn)差數(shù)學(xué)運(yùn)算后得到二值化閾值。在確定圖像的二值化時(shí),先計(jì)算以(x,y)為中心的n×n大小的鄰域內(nèi)像素點(diǎn)的灰度平均值m和標(biāo)準(zhǔn)差s:
(1)
(2)
二值化閾值T(x,y)的計(jì)算公式如下:
T(x,y)=k·s(x,y)+m(x,y)
(3)
式中:k是根據(jù)經(jīng)驗(yàn)預(yù)定的修正系數(shù),一般k取0.1~0.5。
當(dāng)前觀察點(diǎn)的最終閾值由以下公式?jīng)Q定:
(4)
該算法考慮了觀察點(diǎn)的模板鄰域均值和標(biāo)準(zhǔn)差信息,但存在以下缺點(diǎn):
1)偽影現(xiàn)象。該算法雖然考慮了均值和標(biāo)準(zhǔn)差,但個(gè)別的椒鹽噪聲點(diǎn)將引起閾值的突變,本是背景的點(diǎn)被二值化成目標(biāo)點(diǎn),導(dǎo)致偽噪聲的引入。
2)筆畫斷裂現(xiàn)象。當(dāng)模板窗口內(nèi)都為目標(biāo)點(diǎn)時(shí),局部閾值拉伸,本是目標(biāo)的點(diǎn)卻被二值化成背景,使得信息丟失,從而出現(xiàn)筆畫斷裂現(xiàn)象。
Sauvola算法在Niblack算法基礎(chǔ)上,引入了標(biāo)準(zhǔn)方差的動(dòng)態(tài)范圍R,雖然有效地抑制了偽影現(xiàn)象和筆畫斷裂現(xiàn)象,但仍有不少噪聲點(diǎn)無(wú)法去除。
設(shè)模板鄰域?yàn)閟×s的方陣,圖像中點(diǎn)Ps×s(x,y)周圍鄰域的像素值的總和為:
(5)
設(shè)t為修正系數(shù),T(x,y)為點(diǎn)考察點(diǎn)Ps×s(x,y)最終的像素值,則:
(6)
在實(shí)際測(cè)試中s=image.width/8,而t=15時(shí)效果最好,在確定T(x,y)的值時(shí),用的是平均值,但由于當(dāng)前點(diǎn)的灰度值跟其附近鄰域點(diǎn)有關(guān),改成距離考察點(diǎn)Ps×s(x,y)越近的像素點(diǎn)對(duì)其的影響越大,越遠(yuǎn)則越小,則更加具有說(shuō)服力,為了便于理解將式(6)簡(jiǎn)化為:
(7)
(8)
這里需給定初始迭代值,取T(n)=127×s,Wellner算法無(wú)法處理邊緣圖像,Bradley等[11]改進(jìn)了Wellner算法:以圖像當(dāng)前考察點(diǎn)為基準(zhǔn),把該點(diǎn)左上方所有的像素值累加重新賦值給該點(diǎn),邊界點(diǎn)按水平或者豎直方向處理,處理過(guò)程如圖1所示,其中33即為所有像素總和。
(a) (b)
像素總值面積表如圖2所示。要判定區(qū)域D時(shí),就可以利用圖1(b),設(shè)P(x,y)為點(diǎn)(x,y)的像素值(已轉(zhuǎn)換為圖1(b)的值),對(duì)于區(qū)域D的總閾值為:
圖2 像素總值面積表
P(D)=P(x2,y2)-P(x2,y1)-
P(x1,y2)+P(x1,y1)
(9)
得到區(qū)域D的總閾值,再除以區(qū)域D的像素點(diǎn)個(gè)數(shù)得到平均閾值Pjun=P(D)/N,對(duì)于區(qū)域中心點(diǎn)(i,j)若P(i,j)>P,則重寫點(diǎn)(i,j)的像素為255,反之為0。
改進(jìn)后的Wellner算法很好地解決了邊緣處理問(wèn)題,而且創(chuàng)新地提出了面積制表的思想,極大地提高了處理速度。
實(shí)際的圖像采集過(guò)程中,現(xiàn)場(chǎng)環(huán)境復(fù)雜多變,受拍攝角度、物體表面反射率、光源照射方向、光源與物體距離、相機(jī)成像系統(tǒng)等影響,最終的圖像往往呈現(xiàn)出離散、無(wú)規(guī)律、明暗相間等不均勻光照現(xiàn)象,嚴(yán)重影響了圖片的質(zhì)量,為后續(xù)的處理帶來(lái)了極大的困難。
圖3是大小為773×443的文本圖像,為左側(cè)光源打光,左側(cè)有物體遮擋,光線較暗,背景灰度值較低,中間局部區(qū)域光源斜角度直射,灰度值較大,右側(cè)區(qū)域隨著距光源的距離逐步拉遠(yuǎn),灰度值逐漸降低,整幅圖的背景灰度值大小不一。圖4為其灰度直方圖??梢钥闯觯ǚ搴筒ü冉徊娉霈F(xiàn),且沒(méi)有規(guī)律,若采用單一的全局閾值來(lái)分割,左部區(qū)域灰度值會(huì)被置0,中部的部分區(qū)域灰度值將會(huì)置255,最終無(wú)法均衡整個(gè)區(qū)域,導(dǎo)致分割失敗。但在不同的局部小范圍區(qū)域,存在明顯的灰度值差異,肉眼仍可分辨出背景和目標(biāo),采用“局部范圍相對(duì)閾值分割”,仍可得到很好的閾值分割效果。把圖3局部區(qū)域放大如圖5所示,該區(qū)域每個(gè)點(diǎn)的灰度值大小不一,高低起伏,每個(gè)點(diǎn)的灰度值,不僅與自身的二維平面位置、該點(diǎn)物的表面光線反射率等有關(guān),還與其自身相鄰域的點(diǎn)的灰度特性有關(guān),灰度值較低的點(diǎn),附近點(diǎn)的灰度值也會(huì)受其影響相應(yīng)較低。該目標(biāo)考察點(diǎn)顯示出的灰度值是多種因素共同造成的結(jié)果,實(shí)際分割時(shí),應(yīng)把鄰域的像素點(diǎn)考慮進(jìn)去。為了更直觀地分析圖像灰度曲線波動(dòng)情況,繪制原始圖的局部區(qū)域三維灰度特性如圖6所示。
圖3 文本原始圖
圖4 原始圖的灰度直方圖
圖5 原始圖的局部放大圖
圖6 原始圖的三維灰度波動(dòng)圖
把圖像的三維圖和連綿不斷的波峰波谷地形進(jìn)行類比[13],圖3中跳躍突變的亮點(diǎn)對(duì)應(yīng)著三維圖中的波峰點(diǎn),對(duì)應(yīng)著地形上的覆蓋白雪的山頂;跳躍突變的暗點(diǎn)對(duì)應(yīng)著三維圖中的波谷點(diǎn),對(duì)應(yīng)著地形上的黑暗深淵的山谷。圖像的三維灰度特性圖之所以呈現(xiàn)空間三維地形,是受物體表面不同區(qū)域的光線反射率影響,不同的光線反射率相當(dāng)于不同的地形,表現(xiàn)在圖像上就是灰度值不同。
實(shí)際圖3中的突變亮點(diǎn)一般是夾雜在黑色字體之間的白色背景,突變黑點(diǎn)一般是夾雜在白色紙張背景之間的黑色文字邊緣,且突變較大。白色背景和黑色字體是有寬度的,中間的部分較亮或較暗,因而內(nèi)部也會(huì)產(chǎn)生小尺度的灰度波動(dòng),但突變較小。選取圖3文本圖像的中間行即第222行,統(tǒng)計(jì)前433個(gè)像素,以像素點(diǎn)在當(dāng)前行數(shù)的位置為橫軸,以灰度值為縱軸繪制曲線如圖7所示。
圖7 第222行的前433像素點(diǎn)灰度變化曲線圖
可以看出,灰度值曲線上下起伏,變化頻繁劇烈,整體灰度值越來(lái)越高,與實(shí)際的光照情況相吻合。另外灰度值均勻降低的點(diǎn)對(duì)應(yīng)曲線的斜率為負(fù)的直線部分;灰度值均勻上升的點(diǎn)對(duì)應(yīng)曲線的斜率為正的直線部分;灰度值不變的點(diǎn),反映在曲線上是一條直線。產(chǎn)生均勻斜線的原因是背景變化較均勻(白色紙張或黑色文字鄰近邊緣,如果斜線部分斜率為正整體灰度值逐漸增大即是白色背景紙;斜線部分斜率為負(fù)整體灰度值減小且變化劇烈即是黑色文字鄰近邊緣),這些較均勻斜線直線部分絕大多是背景,基本不包含文字的輪廓和位置信息,對(duì)附近像素點(diǎn)的灰度值影響較小,不考慮加入算法。而圖中曲線峰值點(diǎn)為圖像文字與文字之間或文字內(nèi)部的白色背景,灰度值較大,曲線峰谷點(diǎn)為文字筆劃中心,灰度值較小。
波峰波谷包含了詳細(xì)的文字邊緣信息,不同的波峰點(diǎn)和波谷點(diǎn),反映了不同文字的不同邊緣變化趨勢(shì),灰度值與其在曲線上的波動(dòng)坐標(biāo)相互對(duì)應(yīng),而且上述分析得出波峰和波谷點(diǎn)對(duì)當(dāng)前點(diǎn)的最終表現(xiàn)的灰度值影響更大。那么若已知當(dāng)前目標(biāo)考察點(diǎn)的某一方向的灰度變化曲線,提取了所有的波峰點(diǎn)和波谷點(diǎn),所選的判定閾值應(yīng)該在波峰波谷之間動(dòng)態(tài)浮動(dòng),滿足一定的關(guān)系。
本文在水平方向上某一行選擇長(zhǎng)度為L(zhǎng)的一段條形區(qū)域,考慮到圖像邊界問(wèn)題,可先將圖像左右寬度擴(kuò)展L/2,該區(qū)域在當(dāng)前行水平移動(dòng),L的中心點(diǎn)則從選取的當(dāng)前行的第一個(gè)點(diǎn)移動(dòng)到最后一個(gè)點(diǎn),每次平移選取L區(qū)域覆蓋的圖像部分,以被覆蓋的圖像像素點(diǎn)在條形區(qū)域的位置為橫坐標(biāo),以灰度值為縱坐標(biāo),繪制灰度波動(dòng)曲線f(x),x=1,2,…,L,L為條形區(qū)域長(zhǎng)度。圖8所示為圖3第38行的以(38,38)為中心、L為75的條形區(qū)域灰度波動(dòng)曲線,所有的波峰點(diǎn)和波谷點(diǎn)已全部標(biāo)記出來(lái),判定閾值T1的選取與這些點(diǎn)有關(guān)。本文選擇水平方向遍歷,實(shí)際不均勻光照影響中,豎直方向同樣需要考慮進(jìn)去,同樣如上述步驟處理。根據(jù)目標(biāo)點(diǎn)豎直方向灰度波動(dòng)曲線求出判定閾值T2,最終判定閾值為T=ξ×(T1+T2),將T與當(dāng)前目標(biāo)考察點(diǎn)進(jìn)行比較,依次確定該點(diǎn)灰度值,最后依次完成全圖遍歷,閾值分割完成。
圖8 第38行的前75像素點(diǎn)灰度變化圖
確定閾值T1和T2的關(guān)鍵在于找到灰度波動(dòng)曲線上的波峰點(diǎn)及波谷點(diǎn),在實(shí)際中,曲線不僅僅像圖8那樣上下起伏變化明顯,還會(huì)出現(xiàn)短暫或者連續(xù)的水平直線,即灰度值階段性重復(fù),此時(shí)這些點(diǎn)的灰度值已經(jīng)重復(fù),不需要把該直線上波峰點(diǎn)或者波谷點(diǎn)都提取出來(lái),所以需要根據(jù)實(shí)際情況,重新定義波峰點(diǎn)和波谷點(diǎn)。
在數(shù)學(xué)表達(dá)式定義中,連續(xù)曲線的波峰和波谷就是曲線的極值點(diǎn),滿足一階倒數(shù)為0,并且二階倒數(shù)為負(fù)的點(diǎn)為峰值點(diǎn);滿足一階倒數(shù)為0,并且二階倒數(shù)正數(shù)的點(diǎn)為峰谷點(diǎn)。但圖像的曲線是離散的,應(yīng)使用求差分函數(shù)來(lái)求解,確定峰值點(diǎn)和峰谷點(diǎn),繪制灰度離散圖如圖9所示。
圖9 離散點(diǎn)波峰和波谷
依次得到灰度離散圖像上每個(gè)點(diǎn)所對(duì)應(yīng)的灰度值,對(duì)其進(jìn)行前后差分操作,當(dāng)前的遍歷點(diǎn)前后差分出現(xiàn)相異符號(hào)時(shí),便可初步判定其為峰值點(diǎn)或峰谷點(diǎn),判定依據(jù)如下:
(10)
式(10)可以處理平滑的灰度波動(dòng)曲線,但實(shí)際圖形曲線會(huì)出現(xiàn)如圖10所示的情況,式(10)顯然是不全面的。
圖10 重復(fù)的波峰點(diǎn)和波谷點(diǎn)
仔細(xì)分析可知,若出現(xiàn)平行的直線且灰度值較大,則為白色背景,灰度值很小,則為黑色文字區(qū)域,這種情況,只取第一個(gè)點(diǎn)加入即可,避免不必要的重復(fù),這樣即可找到所有滿足條件的點(diǎn)。
因此當(dāng)投影曲線是圖10所示的曲線類型時(shí),判定依據(jù)改為:
(11)
通過(guò)上述方法最大限度地提取了目標(biāo)考察點(diǎn)水平和豎直范圍內(nèi)的所有有價(jià)值的波峰點(diǎn)和波谷點(diǎn),它們包含了圖像重要的邊緣信息,這些突變的點(diǎn)是光照不均勻的直接反映,在考察點(diǎn)長(zhǎng)為L(zhǎng)的水平鄰域內(nèi),我們把滿足式(11)的水平方向上的點(diǎn)分別存放在一維矩陣A和B中。
A=[a1,a2,…,ai,…,am-1,am]m B=[b1,b2,…,bj,…,bn-1,bn]n 式中:ai為第i個(gè)波峰點(diǎn)的灰度值;bj為第j個(gè)波谷點(diǎn)的灰度值。再求波峰點(diǎn)、波谷點(diǎn)的平均值如下: Aaverage=Asum/m (12) Baverage=Bsum/n (13) 式中:Asum為波峰點(diǎn)的灰度值總和;m為波峰的總數(shù);Bsum為波谷點(diǎn)的灰度值總和;n為波谷的總數(shù)。則水平方向的閾值判定T1的計(jì)算方法為: T1=K(Aaverage-Baverage)+Baverage (14) 同理計(jì)算出豎直方向上的局部閾值判定T2,最終閾值如下: T=ξ×(T1+T2)ξ∈[0,1] (15) 若該考察點(diǎn)的灰度值大于T,則灰度值置為255,若灰度值小于等于T,則灰度值置為0,依此可判定改點(diǎn)是屬于目標(biāo)區(qū)域還是背景區(qū)域,依次對(duì)全圖循環(huán)遍歷,得到自適應(yīng)的二值化圖像。 灰度波動(dòng)曲線閾值分割實(shí)現(xiàn)過(guò)程如下: 1)首先通過(guò)相機(jī)拍攝在光源不均勻照射下的圖像,再設(shè)置十字形模板的長(zhǎng)寬L,L過(guò)大則運(yùn)算速度過(guò)大,L過(guò)小則分割效果不佳。通過(guò)大量實(shí)驗(yàn),當(dāng)L=75左右時(shí),分割效果最好。 2)繪制當(dāng)前目標(biāo)考察點(diǎn)為中心的模板內(nèi),水平和豎直方向的灰度波動(dòng)曲線,通過(guò)對(duì)灰度曲線上的坐標(biāo)位置對(duì)應(yīng)的圖像像素點(diǎn)進(jìn)行前后差分工作,獲取水平和豎直方向上的所有波峰點(diǎn)和波谷點(diǎn),并把坐標(biāo)和灰度值存在信息相應(yīng)的一維矩陣中。 3)計(jì)算水平方向的所有波峰平均值和波谷平均值。根據(jù)公式得到平均波峰值和平均波谷值之間動(dòng)態(tài)分割閾值T1,同理得到豎直方向動(dòng)態(tài)分割閾值T2,通過(guò)加權(quán)平均得到最終閾值T。 4)把當(dāng)前考察點(diǎn)的灰度值和最終閾值T比較,分割為目標(biāo)或背景,十字模板從圖像的左上角依次從左到右、從上到下,循環(huán)到右下角,完成全圖分割。經(jīng)過(guò)大量不同光照情況的文本實(shí)驗(yàn)分析得,K取0.2、ξ取0.4時(shí)效果最佳。 實(shí)驗(yàn)環(huán)境:CPU為Inte酷睿i5 337U,2.7 GHz,內(nèi)存4 GB,程序編平臺(tái)為MATLAB 2014b,對(duì)光照不均勻的文檔圖像的二值化閾值分割的編程核心M語(yǔ)言代碼如下: for i=H:(height-H+1) %(i,j)程序遍歷起點(diǎn) for j=H:(width-H+1) … for q=(j-(H-2)):(j+H-2) Cpoint(cpoint)=in(i,q) %提取豎直方向H個(gè)點(diǎn)的灰度值 if(in(i,q)>in(i,q-1)&& in(i,q)>=in(i,q+1)) A(ii)=in(i,q); end %波峰點(diǎn)數(shù)組 if(in(i,q) B(jj)=in(i,q); end %波谷點(diǎn)數(shù)組 ii=ii+1; jj=jj+1; cpoint=cpoint+1; end T1=0.2*((sum(A))/averageA-(sum(B))/ averageB)+(sum(B))/averageB; %豎直方向閾值T1 … %同理求出T2 T=(T1+T2)*0.4 %最終閾值T 為了驗(yàn)證本文算法的有效性,選取了具有經(jīng)典代表性的方法作為對(duì)比參照,全局閾值分割法以O(shè)stu法為代表,局部閾值分割法有Niblack算法、Bernsen算法,各算法處理結(jié)果對(duì)比如圖11所示。圖11(a)所示為左側(cè)平行光斜角度照射所得的文本圖像,尺寸為1 040×780。在對(duì)比參照實(shí)驗(yàn)中,各算法的相關(guān)參數(shù)設(shè)置如下:Niblack算法中K值取0.2,Sauvola算法中K值取0.36,Niblack和Sauvola算法的模板窗口大小為20×20,本文算法中K的取值為0.2,ξ的取值為0.4。 (a)原圖 (b)Ostu算法 (c)Niblack算法 1)算法二值化分割效果及性能對(duì)比。由圖11(a)可見,左側(cè)區(qū)域灰度值較高,右側(cè)區(qū)域出現(xiàn)陰影,灰度值較低,全圖光照不均勻。從處理效果及算法性能來(lái)看,Ostu算法在光照較好的區(qū)域效果較好,對(duì)于較暗的區(qū)域和較亮的區(qū)域產(chǎn)生了兩極化的處理結(jié)果;Niblack算法雖然能分割出文字的輪廓但整個(gè)背景區(qū)域出現(xiàn)了大量的黑色紋理噪聲;Bernsen算法在較亮的區(qū)域處理效果還好,在較暗的區(qū)域依然會(huì)出現(xiàn)大量偽影和噪聲;Sauvola算法在Niblack算法上做了改進(jìn),考慮了像素點(diǎn)鄰域內(nèi)標(biāo)準(zhǔn)差,處理效果得到了改善,但仍有不少椒鹽噪聲,尤其是灰度值較低的區(qū)域中噪聲更加明顯;本文算法準(zhǔn)確分割出了文字和背景,而且紋理清晰,零噪聲,細(xì)節(jié)保留良好。經(jīng)過(guò)大量不同文本不同光照情況實(shí)驗(yàn),本文算法與最有效的Wellner算法在處理結(jié)果上幾乎沒(méi)有差別。結(jié)果表明:在不同的光照不均勻情況下,選取同樣的閾值,本文算法處理效果和適應(yīng)性依然較好。 2)參數(shù)L、K和ξ的對(duì)分割結(jié)果的影響。模板鄰域區(qū)域的長(zhǎng)度L的大小直接影響整個(gè)算法的處理速度,L選取得越大,運(yùn)算速度越慢,L選取得過(guò)小,文字墨跡發(fā)白變淺,像蒙了一層霧。隨著L的增大,墨跡逐步加深,所以L的選取既要考慮速度又要考慮效果,經(jīng)過(guò)不同文本光照情況的測(cè)試得出L取75效果最佳,字跡最清晰。 ξ的改變不影響運(yùn)算速度,ξ過(guò)小,字跡會(huì)淡化,筆畫斷裂,類似于被腐蝕;ξ越大,字跡輪廓越清晰,但文字會(huì)逐漸出現(xiàn)黑色斑點(diǎn),與Niblack法處理結(jié)果很像。當(dāng)ξ取0.4時(shí),效果最佳。 K的取值與處理后文字輪廓的粗細(xì)度有關(guān),K值越大,文字輪廓越明顯,過(guò)大會(huì)出現(xiàn)重影,經(jīng)過(guò)實(shí)驗(yàn)K取0.2最佳。 3)處理時(shí)間對(duì)比。表1是對(duì)圖11處理結(jié)果繪制的表格,給出了Ostu法、Niblack法、Bernsen法、Sauvola法以及本文算法的處理時(shí)間??梢钥闯觯琌stu法運(yùn)算時(shí)間是最短的;Niblack法、Bernsen法、Sauvola法三種基于局部鄰域像素的算法需要計(jì)算均值和標(biāo)準(zhǔn)差,耗時(shí)較久,實(shí)時(shí)性較差;本文算法主要在搜索波峰點(diǎn)和波谷點(diǎn)部分耗時(shí),由于不需要計(jì)算標(biāo)準(zhǔn)差,速度有了明顯的提升,但由于是MATLAB編程,所以速度和程序優(yōu)化上有待提高。 表1 五種算法運(yùn)行性能對(duì)比 本文提出了一種針對(duì)光照不均勻的文本圖像的局部灰度波動(dòng)的自適應(yīng)閾值分割算法。根據(jù)圖像每個(gè)像素及其鄰域點(diǎn)的灰度值跳動(dòng),把圖像和三維地形聯(lián)系起來(lái),圖像每一行每一列的灰度波動(dòng)變化曲線,可看作與之對(duì)應(yīng)的三維地形剖面輪廓圖??紤]到陽(yáng)光造成三維地形朝陽(yáng)和背陰的現(xiàn)象、光線反射、物體表面反射率等因素,當(dāng)前點(diǎn)的灰度值受其鄰域范圍內(nèi)波峰點(diǎn)和波谷點(diǎn)影響更大。所以本文算法把當(dāng)前目標(biāo)考察點(diǎn)的一定范圍內(nèi)水平和豎直方向的所有的波峰點(diǎn)和波谷點(diǎn)提取出來(lái),通過(guò)一定的均值加權(quán)處理,確定當(dāng)前點(diǎn)的閾值,完成當(dāng)前點(diǎn)的閾值分割。實(shí)驗(yàn)證明本文方法可以處理不同光照情況的文本圖像,自適應(yīng)強(qiáng),分割效果較好,充分考慮了光照不均勻的敏感變化點(diǎn)。該算法的不足之處在于:模板尺寸L對(duì)處理結(jié)果有影響,L過(guò)大速度變慢,L過(guò)小處理效果不佳;考慮到是全圖遍歷,提取波峰點(diǎn)和波谷點(diǎn)求平均過(guò)程執(zhí)行速度相對(duì)較慢。2.5 灰度波動(dòng)曲線閾值分割實(shí)現(xiàn)
2.6 核心編程的實(shí)現(xiàn)
3 實(shí)驗(yàn)結(jié)果與分析
4 結(jié) 語(yǔ)