柳 歡 高亞蘭
(安徽理工大學 電氣與信息工程學院,安徽 淮南 232001)
邊緣是圖像的重要的特征,傳統的圖像邊緣檢測方法[1-3]的關鍵是閾值的選擇。Sobel 算子[4]對噪聲具有平滑作用,但它要人工設定閾值,如果閾值設定過大,會丟失邊緣,而閾值設定過小,會產生偽邊緣。
ABC 算法[5-6]是Karaboga 在研究了蜜蜂群體的活動規律之后,提出的一種將蜂群模型應用到實際的求最優解的問題中的方法。為了得到更準確的邊緣,防止產生偽邊緣和丟失邊緣,本文將Sobel 和ABC 算法結合起來得到一個新算法,即ABCSobel 算法。
Sobel 邊緣檢測[7]使用圖1 中的模板來數字化近似一階導數和,那么圖像中任意一點(x,y)處的梯度值可按下式計算:

其中,

再通過設定閾值t,如果,在位置(x,y)處G≥t,則該點為邊緣點,反之則不是邊緣點。從而實現邊緣檢測。

圖1 Sobel 模板和圖像鄰域
Otsu 方法[8]思想:假設選定一個閾值t,C0是一組灰度值小于t 的像素,C1是一組灰度值大于t 等于的像素。Otsu 選最大化類間方差σ2B的閾值t,那么類間方差定義為:

其中,ω0為C0中像素點數占圖像總像素數的比例,ω1為C1中像素點數占圖像總像素數的比例,μ0為C0中平均像素灰度值,μ1為C1中平均像素灰度值,μT為圖像平均像素灰度值。
本文將Sobel 算子與ABC 算法結合起來,先得到梯度圖,再用ABC 算法搜索出最佳閾值,其中適應度函數用內間方差函數,最后使用閾值法得到邊緣。
使用內間方差作為評價函數的ABC 算法步驟如下:
步驟1:初始化種群。隨機產生個蜜源,第個蜜源位置為:

式中,xlb,xub為蜜源位置的可能取值的最小值和最大值。ri為[0,1]之間的隨機數。
步驟2:計算適應度值。將類間方差作為適應度函數,利用式(4)計算適應度值。
步驟3:雇傭蜂鄰域搜索。雇傭蜂在蜜源附近搜索新蜜源,第個新蜜源的位置為:

式中,k∈{1,2,…N},xi為舊的蜜源i 的位置,xk為隨機選取的不等于i 的蜜源k 的位置,Vi為產生的新蜜源的位置,Ri為在[-1,1]之間產生的隨機數。
步驟4:根據步驟2 中的適應度函數判斷前后蜜源優劣,雇傭蜂選擇較優蜜源。
步驟5:觀察蜂選擇蜜源及鄰域搜索。隨機產生一個[0,1]之間的數r,若r<pi,則觀察蜂選擇該pi所對應的蜜源i,否則繼續判斷下一蜜源。其中pi定義如下:

式中,fi為第i 個蜜源的適應度值,i∈{1,2,…N},f 為所有的蜜源適應度值,a,b 為常數,選擇好蜜源后,觀察蜂再根據式6在該蜜源附近搜索,得到新蜜源。
步驟6: 比較步驟4 中雇傭蜂和步驟5 觀察蜂的花蜜源適應度值,選擇適應度值較高的花蜜源位置作為本次迭代的花蜜源位置,即雇傭蜂的位置。
步驟7:是否出現偵查蜂,設置一個參數cp,若cp 經次循環后,一個蜜源仍沒有改變,那該蜜源對應的雇傭蜂拋棄該蜜源,轉化成偵查蜂,按照式(5)隨機生成新蜜源。
步驟8:判斷算法是否結束,設置算法的最大循環次數max cycle,如果達到了最大循環次數,那么結束并輸出最佳解,不然再轉到步驟2 重新搜索。
本文提出的邊緣提取算法步驟如下:
步驟1:對圖像進行預處理。
步驟2:用2.1 節中介紹的Sobel 方法來得到預處理后圖像任意一點的梯度值。
步驟3: 用3.1 節中把類間方差當作評價函數的ABC 算法搜索出最佳閾值t。
步驟4:利用步驟3 搜索的最佳閾值t 進行邊緣提取,邊緣點為梯度值大于等于閾值t 的點,置為1,其余的置為0。
為了檢驗ABC-Sobel 的性能,并與傳統的提取邊緣方法相比,我們在MATLAB 環境中仿真。
實驗一: 本文方法與傳統的Sobel 方法進行提取圖像邊緣比較,ABC-Sobel 中,取種群大小NP=20,cp=5,max cycle=50,xlb=0,xub=1,a=0.9,b=0.1,圖2 為仿真結果。

圖2 Sobel 和ABC-Sobel 邊緣檢測仿真結果
由圖可知,使用傳統Sobel 算法來獲得邊緣,閾值設置較高時會遺漏一些邊緣,反之則會得到一些虛假的邊緣,而ABCSobel 算法能夠主動搜索到最佳閾值,不需要用人工設置,且所得到的邊緣更加完整更準確。
實驗二: 本文算法與Roberts、Prewitt 算法進行提取圖像邊緣 比 較,ABC-Sobel 算 法 中,取 種 群 大 小,NP=20,cp=5,maxcycle=50,xlb=0,xub=1,a=0.9,b=0.1。圖3 顯示了仿真結果。

圖3 ABC-Sobel、Prewitt 和Roberts 提取邊緣仿真結果
由圖知,采用Prewitt 方法和Roberts 方法得到邊緣的方法容易遺漏一些邊緣,且所得的邊緣易斷點不連續,而ABC-Sobel 算法能夠獲得到更加完整、清楚的邊緣。
針對Sobel 算法邊緣檢測的缺點,本文在Sobel 算法的閾值選取過程中引入了ABC 算法,很好的防止了閾值過高丟失邊緣,閾值過低產生偽邊緣的現象。仿真結果顯示,該算法能較好地自動提取圖像邊緣、檢測速度快及易實現全局最優。
[1]蔡小瓊,賀賽先.一種快速自適應邊緣提取方法的研究[J].計算機測量與控制,2006.14(3):307-309.
[2]孫慧,周紅霞,李朝暉等.圖像處理中邊緣檢測技術的研究[J].電腦開發與應用,2002(10):8-10.
[3]陳彥燕,王元慶.常用邊緣檢測算法的定量比較[J].計算機工程,2008,34(17):202-204.
[4]王橋.數字圖像處理[M].北京:科學出版社,2009.
[5]Karaboga D,Basturk B.On the performance of artificial bee colony(ABC)algorithm[J].Applied Soft Computing,2008.8(1):687-697.
[6]畢曉君,王艷嬌.改進人工蜂群算法[J].哈爾濱工程大學學報,2012,33(1):117-124.
[7]馬宇飛.基于梯度算子的圖像邊緣檢測算法研究[D].西安:西安電子科技大學,2012.
[8] Otsu N.A Threshold Selection Method from Graylevel Histograms [J].IEEE Transactions on Syst-em Man and Cybernetic,1979,9(1):62-66.