基于形態(tài)學(xué)的自適應(yīng)閾值分割算法
摘要:針對在巖石變形實驗的熔融圖像處理中,圖像的曝光不均、單個像素點灰度值異常和裂痕帶來的分割噪聲問題,本文提出了一種基于數(shù)學(xué)形態(tài)學(xué)中的腐蝕、膨脹方法的自適應(yīng)閾值分割算法,通過和全局閾值法和局部閾值法的對比實驗可以看出,這種方法不僅能夠解決全局閾值分割法亮度分布不均的問題,也能解決局部閩值分割法(Bernsen算法)抗噪聲性能差的問題,同時運算效率提高38.5倍(和Bernsen算法比較)。
在地幔中強烈變形的區(qū)域中存在半熔融巖石,通過變形對熔體分布作用的實驗,可以研究熔體及其分布對于地震速度,剪切粘度,電導(dǎo)率等物性的影響。利用實驗研究大變形對橄欖石集合體的流變性以及微結(jié)構(gòu)的影響具有十分重要的意義,其中如何對巖石切面圖像進(jìn)行分析、圖像處理以及數(shù)據(jù)統(tǒng)計是本實驗在分析過程中不可缺少的關(guān)鍵步驟。目前已有不少數(shù)字圖像處理的理論和優(yōu)秀算法,但是缺少對于本文中實驗圖像的針對性處理方法。
一個熔融圖像處理的過程,需要幾個基本步驟:首先,對原圖進(jìn)行圖像分割,識別熔融物質(zhì)并生成二值圖,然后,對二值圖進(jìn)行去噪處理,去除噪聲信息。有些圖像還需要進(jìn)行數(shù)據(jù)統(tǒng)計和繪制熔融分布等值線。其中,圖像分割是最關(guān)鍵的一步,直接影響圖像處理的質(zhì)量。我們需要處理的熔融圖像是灰度圖,需要把黑色的熔融從灰色的背景中分割出來,并把它們分別變成白色和黑色以便于觀察和統(tǒng)計。所以這同時也是一個二值化的過程。
由于需要處理的熔融圖像較大,因此采用具有較高運算效率的閾值法對圖像進(jìn)行分割。閾值法的計算、算法簡單,是圖像分割中所廣泛運用的方法之一,其主要分為:全局閾值法和局部閾值法。
1 全局閾值法
全局閾值法指的是根據(jù)整張圖像的灰度直方圖對圖像求出最佳的分割閾值,接著整幅圖通過同一個閾值(或者幾個閾值)把所有的灰度值劃分成不同的區(qū)間;局部閾值法是將原始圖像分成多個子圖像,再對每個子圖像采用全局閾值法對其灰度值進(jìn)行劃分。閾值分隔的結(jié)果主要取決于對閾值的選擇。
全局閾值二值化法最重要的是從整幅圖像中找到一個合適的單一閾值,假定記為Thr。然后整個圖像像素將被分成兩部分:black和white。用公式表示如式(1)所示:
其中,Ig(x,y)為原始灰度圖像在(x,y)點處的灰度值,Ib(x,y)為在二值化圖像中對應(yīng)該點的像素值。在灰度級為[0,1]范圍的灰度圖像中:black=0,white=0;在灰度級[0,255]范圍的灰度圖像中:black=0,white=0。
一般來說,全局閾值分割法主要適用于那些目標(biāo)與背景可以完全分割的灰度圖像,即目標(biāo)與背景在灰度直方圖中成雙峰分布,如圖1所示為某一具有亮目標(biāo)的灰度圖像的一維灰度統(tǒng)計直方圖,灰度級為[0,255],其中Thr為最佳閾值。從圖可知,[0,Thr]可劃分為背景區(qū)域,(Thr,255]可劃分為目標(biāo)區(qū)域。
由于待處理圖像往往會受不均勻光照等因素的影響,導(dǎo)致在整幅圖像中目標(biāo)與背景無法用單一閾值完全分開,那么全局閾值分割方法已不再適用,只能采用局部閾值分割算法進(jìn)行處理。我們對實驗原圖(圖2)進(jìn)行處理,實驗圖像大小為5 600x4 258,采用全局閾值分割的結(jié)果如圖3所示,閾值Thr=110??梢钥吹剑菊n題中的熱壓樣本圖像由于原本是相片的緣故,圖像曝光不均造成分割效果不好。
2 局部閾值法
局部閾值分割法是基于局部區(qū)域來為每個像素點分別確定一個閩值,從而構(gòu)造出對應(yīng)整幅圖像的一個閾值平面,記為Thr(x,y)。然后類似于全局閾值分割算法,利用閾值平面Thr(x,y)就可以自動的完成圖像的二值化操作。局部閾值分割法的關(guān)鍵在于每一個閾值的選定。一般是取該窗口的平均值,這就導(dǎo)致在每一個窗口內(nèi)仍然出現(xiàn)的是全局分割法的缺陷。為了解決這個問題,就出現(xiàn)了局部自適應(yīng)分割法。
Bernsen算法是一種典型的局部閾值算法,其基本思想是:對當(dāng)前點(i,j)為中心的大小為(2ω+1)×(2ω+1)(單位像素,下同)的窗口中所有像素的最大值Max與最小值Min兩者的平均值T作為閾值Thr。由于Bernsen算法對每一個像素點都進(jìn)行運算一次,因此在運算像素密度多的圖像時的效率較低,并且由于閾值Thr取窗口內(nèi)的最大值與最小值的均值,因此容易受到噪聲的影響,這種方法在算法上處理曝光度不均的圖像理論上合理,但是也存在一定的局限性。
我們采用Bernsen算法對實驗原圖(圖2)進(jìn)行處理,采用的窗口大小為101×101,實驗結(jié)果如圖4所示,該算法對比全局閾值分割算法,優(yōu)勢在于能夠平衡相片中因曝光不均而導(dǎo)致的亮度分布差異。但該算法在細(xì)節(jié)處理上出現(xiàn)的問題較為明顯,圖像表明,該方法的抗噪性能較弱,因為實驗原圖中存在噪聲,當(dāng)噪聲為單個白點時,以白點為中心,邊長為102個像素的正方形區(qū)域內(nèi)的分割效果較差。當(dāng)噪聲為白色裂痕、條帶時,在白色裂痕周圍也存在相應(yīng)的二值化分割效果差的區(qū)域,因此在局部區(qū)域的分割效果不理想。并且,該算法在邊界上的識別、分割效果與白色裂痕周圍的區(qū)域一樣,使得原本為實驗區(qū)背景的點因局部閾值所取窗口內(nèi)包含灰度值異常高的緣故而被識別為熔融物質(zhì)。除此之外,由于圖像較大,而實驗原圖像的大小是5 600x4 258,又因為本算法需要對每一個像素點進(jìn)行運算一次,這意味著需要運算2 000萬次以上的循環(huán),實際運行結(jié)果表明,算法運算時間為1 387.1 s。
3 基于形態(tài)學(xué)的自適應(yīng)閾值分割算法
綜合局部閾值分割算法能夠平衡相片中亮度分布不均的優(yōu)勢,針對其抗噪性能差、因窗口內(nèi)存在異常值而降低分割效果的問題,本文根據(jù)熔融物質(zhì)呈粒狀、連通面積小的特點,提出了一種基于圖像形態(tài)學(xué)中的腐蝕、膨脹方法的自適應(yīng)閾值分割算法。
形態(tài)學(xué)通常指生物學(xué)中對動植物的形狀和結(jié)果進(jìn)行處理的一個分支。數(shù)學(xué)形態(tài)學(xué)是根據(jù)形態(tài)學(xué)概念發(fā)展而來的、具有嚴(yán)格數(shù)學(xué)理論基礎(chǔ)的科學(xué),在圖像處理和模式識別領(lǐng)域得到了成功應(yīng)用。不僅可以作為抽取圖像中區(qū)域形狀特征,如邊界、骨骼和凸殼等,也經(jīng)常用于圖像的預(yù)處理和后處理,如:形態(tài)學(xué)濾波、細(xì)化和修剪等。
形態(tài)學(xué)圖像分析的基本步驟:
1)提取所要描述的物體的幾何結(jié)構(gòu)特征;
2)根據(jù)結(jié)構(gòu)特征選擇相應(yīng)的結(jié)構(gòu)元素;
3)用選定的結(jié)構(gòu)元對圖像實行擊中與否的形態(tài)學(xué)變換后,可以突出原始圖像的物體特征信息,從而可以方便提取信息。
本文提出的算法首先考慮先將原灰度圖(圖2)取反,定義合適大小、形狀的膨脹和腐蝕的運算模板(結(jié)構(gòu)元),分別對圖像進(jìn)行連續(xù)兩次膨脹與連續(xù)兩次腐蝕,因此可以在保留實驗大致背景的同時,消除熔融物質(zhì)所對應(yīng)的像素點,再將進(jìn)行圖像形態(tài)學(xué)運算前后的兩張圖進(jìn)行相減、再取反,將相減取反后得到的圖像采用全局分割算法,得到二值圖(圖5)。
如圖5所示,圖中的黑色像素點表示識別生成熔融物質(zhì),其灰度值為0,白色的點表示非熔融物質(zhì),其值為1。整個算法的原理簡單,通過形態(tài)學(xué)膨脹與腐蝕的算法,使熔融物質(zhì)附近的背景區(qū)域覆蓋熔融物質(zhì),再讓原圖減去新生成的圖,即可去除背景,保留熔融物質(zhì)。整個算法的優(yōu)點在于:
1)可以平衡圖像中整體的亮度分布差異;
2)消除因局部區(qū)域單個像素點灰度值異常帶來的分割噪聲;
3)消除了因白色裂痕周圍形成的分割噪聲;
4)運算效率高,在與進(jìn)行基于Bernsen算法的局部分割算法同樣配置的機器上,整個程序運行完的時間一共為36.0 s;
5)消除了因窗口帶來的邊界效應(yīng);
6)減少了識別時在實驗邊界上的噪聲。
整個算法的缺點:仍然沒能消除實驗邊界上部分實驗區(qū)背景的像素點被識別為熔融物質(zhì)的噪聲情況,因此還需要對該圖進(jìn)行后續(xù)去除邊界噪聲的處理。
4 結(jié)論
針對熔融圖像中曝光度不均勻、噪聲點多的問題,根據(jù)熔融物質(zhì)呈粒狀、連通面積小的特點,我們提出了基于形態(tài)學(xué)的自適應(yīng)閾值分割算法。通過對比三種不同的閾值分割法對熔融灰度圖像的處理效果,可以發(fā)現(xiàn)該方法能夠較完美地解決灰度圖亮度不均對閾值分割法識別過程中的影響,并且生成的二值圖效果很好,達(dá)到實驗要求。