1 前沿
閾值分割是圖像預(yù)處理中關(guān)鍵的步驟,實質(zhì)是對每一個象素點確定一個閾值,根據(jù)閾值決定當(dāng)前象素是前景還是背景點,目前,已有大量的閾值處理方法,比如全局閾值和局域閾值,是最簡單的分割方法,而后者則是把整幅圖分成許多子圖像,每幅圖像分別使用不同的閾值進行分割。
本文分析了算法,并在此基礎(chǔ)上提出了一種改進的自適應(yīng)閾值選取方法,實踐證明,這種方法簡單、計算量小、速度快、統(tǒng)計準確,可以適時獲取圖像的閾值,PCB圖像分割的效果非常好,圖像分割以后,保證了目標圖形的完好無損,圖象增強之后,使的開路和短路更加清晰、突出,為以后的圖像處理做好了充分的準備工作。
2 算法理論
自適應(yīng)閾值分割算法:
?。?)將圖像分成4個子圖像;
?。?)計算每個字圖像的均值;
(3)根據(jù)均值設(shè)置閾值,閾值只應(yīng)用在對應(yīng)的子圖像;
?。?)根據(jù)閾值,對每個子塊進行分割。
此算法中,將均值作為子塊的閾值。
印刷電路板的灰度分布特征,其具有以下特征:
(1)具有明顯的背景峰值和目標峰值;
?。?)兩個峰值距離較遠,而且其間灰度值基本相等,沒有明顯的波谷;
(3)背景象素點和目標象素點的灰度變化具有連續(xù)性,目標邊界的灰度是漸變的,不是突變的。
經(jīng)實踐證明,算法不適合印刷電路板,分割的效果也不是很好,因為平均灰度不一定是直方圖的波谷,而且在PCB的直方圖中有很大一部分平坦的區(qū)域,甚至為0的灰度級,尋找極小值點比較困難,為了對PCB圖像進行準確的分割,需要尋找另外一種有效的方法,注意到,平均灰度值點是在兩個峰值之間(即,平均灰度值在背景灰度值和目標灰度值之間),而且靠近于波谷,所以考慮在其領(lǐng)域內(nèi)尋找極小值點。 為了分割PCB的目標圖像,可以先確定出直方圖的目標峰,再確定極小值點,然后可以找出背景峰,將極小值點作為分割閾值,在目標峰和背景峰附近選擇一個灰度值,分別作為開路、短路增強的閾值,在PCB圖像中,但有時目標比較稀疏,但有時比較密集。尋找整個直方圖的最大值點比較簡單,但是如何確定這個峰值是背景峰還是目標峰,成為問題的關(guān)鍵。
對于一般的PCB圖像,其目標(銅線)表現(xiàn)為高灰度,背景表現(xiàn)為低灰度,以下討論一種可行的閾值搜索方法。
(1)找出最大的一個峰值所對應(yīng)的灰度值。在全灰度區(qū)間[0,255]找出f(H)的最大值,其對應(yīng)值即為H;
(2)計算圖像的平均灰度:
?。?)確定是背景峰還是目標峰:
如果選取極小值點,在平均值點的30鄰域內(nèi),尋找極小值,其對應(yīng)值即為Hmin。
注:鄰域的大小可以根據(jù)實際情況自行選定。
(5)確定的第二個峰值點:
如果(3)中找到只是背景峰值Hb,那么在灰度區(qū)間[Hmin,255)找出f(H)的最小值,其對應(yīng)值即為目標峰值點Hf;
如果(3)中找到的是目標峰值Hf,那么在灰度區(qū)間[0,Hmin]找出f(H)的最小值,其對應(yīng)值即為背景峰值點Hb;
?。?)以Hmin為閾值,進行圖像分割;
在背景峰值Hb右側(cè)附近找出一個灰度級(一般為Hb+10),進行短路增強;
在目標峰值Hf左側(cè)附近找出一個灰度級(一般為Hf-10)進行開路增強。
注:本算法特別適用于直方圖的連續(xù)的圖像,對于不連續(xù)的直方圖,可以先進行臨近插值,將直方圖轉(zhuǎn)換成連續(xù)圖形,即可采用上述方法來確定閾值。
3 實驗結(jié)果
當(dāng)圖像存在噪聲時,通常采取兩種做法:
?。?)先濾波再做二值化處理,這樣原圖像將丟失大量的邊緣細節(jié)信息,使得統(tǒng)計結(jié)果不夠準確;
?。?)不處理,但這樣又會使圖像中存在許多細小的噪聲,同樣統(tǒng)計結(jié)果也不夠準確。
為了保證統(tǒng)計結(jié)果的準確性,既不要由于濾波的影響,而使圖像的某些邊緣丟失,線寬減小,又不可將那些噪聲點誤當(dāng)成線條而統(tǒng)計進來,可以采用先二值化再去除噪聲的方法。
本實驗中,從攝像機中得到的圖像比較清晰,噪聲很少,所以對其直接處理。
該實驗結(jié)果表明該方法是一張實用性較好的方法,而且快速、簡單。
深圳宏力捷推薦服務(wù):PCB設(shè)計打樣 | PCB抄板打樣 | PCB打樣&批量生產(chǎn) | PCBA代工代料