摘 要:現有的邊緣檢測方法主要采用全局閾值選取方法,由于全局閾值的選取不當,易造成圖像中重要而梯度變化較弱的邊緣丟失,而局部閾值選取研究相對不足且實用性差。針對以上問題,提出了基于局部區域的動態閾值選取方法:以每個候選邊緣點為中心,局部矩形區域內動態確定該點的雙閾值,根據邊緣點梯度模值與其雙閾值大小關系選取邊緣點。與Canny邊緣檢測中采用的閾值選取方法相比,本算法能夠有效地提取圖像中重要邊緣,且抗噪聲能力強。
關鍵詞:動態閾值選取; 邊緣檢測; Canny算法
中圖法分類號:TP751
文獻標志碼:A
文章編號:1001-3695(2010)02-0772-03
doi:10.3969/j.issn.1001-3695.2010.02.104
Dynamic threshold selection based on local region in edge detection
WANG Jia, LI Bo, XU Qi-zhi
(Digital Media Laboratory, School of Computer Science Engineering, Beihang University, Beijing 100191, China)
Abstract:Most of the current edge detection methods adopt global threshold selection techniques. However, global threshold selection sometimes is not adaptive to detect out important edges, whose gradient intensity are below it. In recent years, local threshold selection methods has developed, but the investigation is still insufficient and complicated to apply. Thus, in order to solve these problems,this paper proposed a method of dynamic threshold selection based on local region: each candidate edge point had two thresholds in local square region,where the point was in the center. Comparing the gradient of the edge point with the threshold, edge points can be picked out successfully. Experiments show that dynamic threshold selection has better results and little influence from noise than global thresholds selection used in Canny algorithm.
Key words:dynamic threshold selection; edge detection; Canny algorithm
0 引言
邊緣檢測是圖像處理與模式識別領域的關鍵技術,提取景物形體的邊緣是圖像分割、特征提取和圖像理解的基礎。數字圖像中的邊緣是指圖像局部灰度變化顯著的部分。由于人眼對圖像中景物邊緣的感知來源于具有局部強灰度變化的區域,邊緣檢測算法旨在模擬人眼對景物邊緣的感知,提取局部灰度變化較劇烈的邊緣。邊緣檢測算法中,判斷邊緣點灰度變化是否劇烈是通過設定梯度閾值作為評價標準的,因此閾值的選擇是邊緣檢測的重要組成部分。
一般來講,一個好的閾值選取算法應滿足不丟失重要邊緣、受噪聲影響小和計算簡單的條件。近三十年,許多邊緣檢測算法通過設置閾值去除噪聲與弱邊緣點,但大部分檢測算法由于梯度閾值選取不當,造成重要邊緣丟失現象。傳統的邊緣檢測微分法中的一階算子如Roberts算子、Sobel算子等,二階算子如Laplacian算子都是通過設定全圖單一閾值,將梯度值小于閾值的候選邊緣點刪除。Canny邊緣檢測方法[1]對全圖單閾值法提出了改進,根據梯度圖像的直方圖分布選取全圖高低兩閾值,將梯度大于高閾值的邊緣點保留,小于低閾值的點刪除,梯度介于兩閾值之間的邊緣點若與邊緣點鄰接則保留,否則刪除。以上兩類基于全圖的固定閾值選取方法抗噪性差,容易造成重要邊緣丟失的現象。
鑒于全圖閾值選取方法引發的重要邊緣丟失問題,大量的基于局部區域的閾值選取方法應運而生,但是由于局部區域的閾值選取算法研究相對不足且算法復雜,不能得到廣泛應用。Elmabrouk等人[2]提出了將圖像分割成無重合區域的矩形塊,各區域內采用單閾值方法提取邊緣,閾值的選取參考塊內灰度直方圖的分布形態(單峰或多峰),計算量較大且算法有局限性。Wan Shu-ai等人[3]的方法是將圖像分割為多個存在重合區域的矩形塊,各區域的閾值選取需要根據區域內圖像的性質手動設置參數,且增加了重合區域內邊緣連接環節,因此該算法復雜度較高。本文針對現有的閾值選擇方法存在重要邊緣丟失和局部區域固定閾值選取的研究相對不足且實用性差的特點,提出了基于局部區域動態閾值選取的邊緣提取方法。
1 邊緣檢測算法流程
邊緣檢測算法中,Canny檢測方法得到了廣泛的運用,主要是因為它提出了目前定義最嚴格的邊緣檢測的三個最優標準,并指出使用高斯函數的一階導數作為濾波器時, 能夠近似滿足這三個最優準則;另外其提出的雙閾值邊緣選取法有效避免了連接邊緣的截斷現象,算法的整個過程可以在較短的時間內實現。使用全圖雙閾值的Canny邊緣檢測算法的流程如下:
a)使用高斯函數平滑圖像I,減少圖像中噪聲的影響。
b)計算圖I中各點梯度值和梯度方向,記錄于梯度模值圖mag和梯度方向圖θ中。
c)非極大值抑制,確定候選邊緣點。梯度模值圖mag中,如果某點梯度值與該點梯度方向上相鄰兩個像素的梯度值相比不是最大,則該點為非邊緣點刪除,這一過程就是非極大值抑制。抑制后得到的候選邊緣點記錄在圖edge中。
d)全圖設置高低兩閾值,選取邊緣點。梯度模值圖mag的直方圖分布中,像素點個數按梯度模值遞增方向累加,累加個數為總數比例P (P=80%)處的梯度值為高閾值,高閾值40%處為低閾值。圖edge中的候選邊緣點中,梯度值大于高閾值的點作為邊緣保留,梯度值小于低閾值的點刪除,梯度值介于兩閾值間且與邊緣點鄰接的點作為邊緣保留,否則刪除。保留的邊緣點形成最終邊緣圖。
2 局部區域的動態閾值選取方法
由于Canny邊緣檢測算法中采用全局的雙閾值來選取邊緣,容易造成重要邊緣丟失,可以通過設置局部閾值的方法改善弱邊緣丟失現象。目前現有的很多基于局部區域閾值提取的方法,大部分是將圖像分塊,塊內設置固定閾值來提取邊緣,并增加區域間邊緣連接得到全圖邊緣。這些局部區域選取閾值的方法雖然緩解了重要邊緣丟失問題,但同時引入了復雜的邊緣連接計算和區域內邊緣檢測時參數的手動設置過程。邊緣連接方法過程復雜、參數選取需要先驗知識,這兩個過程結果的好壞直接影響邊緣檢測結果,因此成為了局部閾值邊緣檢測方法的技術瓶頸。
鑒于以上問題,本文提出了基于局部區域動態閾值選擇的方法,為每個邊緣點動態選取各自的梯度雙閾值。根據以候選邊緣點為中心的局部區域內梯度分布情況計算該點雙閾值,達到了閾值的局部區域選取且避開了區域分割與各區域邊緣連接的兩大技術難點;根據候選邊緣點局部區域內梯度分布情況選取該點梯度雙閾值,有效避免了連續邊緣的斷裂;預先設置局部區域內獲取閾值的邊緣點比例P,可達到動態選取各候選點的局部區域內雙閾值的效果。下文將提出的閾值選取方法加入到邊緣檢測算法流程中。
已知梯度模值圖像mag和非極大值抑制后產生的邊緣候選點圖像edge,圖像mag采用對稱延拓方法,保證處于邊界處的候選點存在規定面積的局部區域。
1)計算各候選邊緣點雙閾值 設point(i,j)為圖edge中某候選邊緣點,point(i,j)的雙閾值選取只與圖mag中以mag(i,j)為中心的寬為r的正方形區域內梯度分布有關,可根據圖像紋理信息的豐富程度調整r的大小,一般r∈[30,50]。參考區域的梯度直方圖中,像素點個數按梯度遞增順序累計,累計和為總個數百分比P(P∈[70%,90%])處的梯度值為高閾值τ2,高閾值的40%為低閾值τ1。圖1(a)為點(i,j)閾值參考區域內梯度直方圖分布及兩閾值確定位置,圖中的直方圖灰度級數為64;圖1(b)中灰色區域為mag中point(i,j)閾值參考區域。
2)根據各候選邊緣點梯度與其閾值關系確定邊緣 對于圖edge中所有候選邊緣點,如果候選點的梯度值大于該點的高閾值,該點為邊緣保留;如果候選點的梯度值小于該點的低閾值,該點為非邊緣點刪除;如果候選點的梯度值介于該點兩閾值之間且與保留的邊緣點八鄰域連接,該點為邊緣保留,否則刪除。
3 局部區域動態閾值選取的快速實現
在梯度圖像的各邊緣點自動選取雙閾值過程中,相鄰邊緣點間閾值參考區域存在大量重合部分,可以通過存儲前一點的參考區域的模值減少后一點參考區域的重復遍歷,以降低時間復雜度。設模值圖中候選邊緣點個數為c,邊緣連通個數為n(n< a)歸一化梯度模值圖像mag,保證mag中各點梯度為[0,1]。 b)確定梯度圖像數據精度mag,便于快速準確地統計梯度值分布。實驗中r∈[30,50],局部區域內像素個數不超過2 500,可設定梯度圖像數據精度為0.001。梯度數據小數點后保留3位有效數字。對于尾數大于3位的數據采取截斷措施,截斷后的梯度模值圖像的數據是[0.001,1]。在局部區域的閾值選取過程中,使用數組count[1000]標記1 000種梯度值出現次數,通過數組count記錄梯度值分布情況以快速獲得局部閾值。 c)考慮到連通邊緣上的相鄰點閾值參考區域基本重合的特點,按照連接順序計算連通邊緣上各點的雙閾值。圖2中標記3某一連通線上水平方向相鄰的兩候選邊緣點mag(i,j)與mag(i,j+1)的閾值參考區域。按照邊緣連接順序計算兩候選點的局部閾值,首先在點mag(i,j)的局部區域r2內選取該點雙閾值,將mag(i,j)的局部區域內各梯度模值出現的次數記錄于count[1000]中;mag(i,j)閾值確定后,數組count刪除mag(i,j)參考域最左一列各模值出現次數,并增加mag(i,j+1)參考域最右列的各模值出現個數,此時的數組count記錄為mag(i,j+1)參考域內各梯度模值個數。垂直方向處理類似,對角線方向可分解為水平與垂直方向的疊加。改進后的閾值快速選取法避免了重復讀數據帶來的時間開銷,實驗表明,改進后的閾值選取算法運算時間明顯優于改進前的算法。表1顯示出三幅圖像各采用兩種閾值選取方法的運算時間。 4 實驗對比 實驗中通過對三幅具有代表性的圖像提取邊緣,對比采用全局閾值選取的Canny算法和本文提出的局部區域動態閾值選取的邊緣檢測方法的檢測結果,分析兩種方法的邊緣定位精確度和抗噪聲干擾能力,如圖3所示。實驗中的兩種邊緣檢測算法除閾值選取方法不同外,其他檢測步驟完全一致。不同的圖像可根據人眼對景物的關注側面不同而手工調整閾值選取比例(該比例可確定各邊緣點局部區域內閾值的選取)。本實驗三幅圖像均設定閾值選取比例為80%。 實驗1 通過檢測已知邊緣的圖3(a),比較兩閾值選取算法的邊緣檢測精確度。圖3(a)為165×165的8位灰度合成圖像,各矩形區域內灰度相同,各區域間灰度值等差遞減,且無噪聲干擾,邊緣點總數為2 126。圖3(b)為采用全局閾值選取的Canny算法對圖3(a)邊緣檢測的結果,σ=1(高斯函數標準差),高閾值τ2取全局梯度模值圖像直方圖個數比例80%處。圖3(c)為本文提出的基于局部區域動態閾值法的邊緣檢測算法作用于圖3(a)的結果,σ=1,r=30,局部高閾值τ2為局部區域梯度模值圖像直方圖個數比例80%處。將結果圖3(b)與(c)對比,全局閾值選取法存在丟邊現象,本文提出的局部閾值選取法無丟邊現象。表1記錄了實驗1中各方法的邊緣點檢測數量。 實驗2 比較兩閾值選取算法的抗噪性。將圖3(a)加入信噪比為0.005的高斯噪聲生成圖3(d)。圖3(e)為采用全局閾值選取的Canny算法對圖3(d)邊緣檢測結果,參數設置與實驗1中一致。圖3(f)為本文提出的基于局部區域動態閾值提取的邊緣檢測算法作用于圖3(d)的結果,參數設置與實驗1中一致。將結果圖3(e)與(f)對比觀察,全局閾值選取法存在丟邊現象,本文提出的閾值選取法無丟邊現象;將結果圖3中(b)與(e)對比、(c)與(f)對比, 全局閾值選取法的邊緣檢測結果易受噪聲影響(同一比例的閾值選取方法中,噪聲增加,則小梯度值的邊緣點數增加,隨之閾值減小,且邊緣結果圖中邊緣點增加),本文提出的局部閾值選取法的檢測結果基本無噪聲影響。表1記錄了實驗2中各方法的邊緣點檢測數量。 實驗3 圖3(g)為168×168的8位灰度圖像,通過檢測真實機場圖像(g)的邊緣,綜合對比閾值選取算法的邊緣檢測效果。圖3(h)為采用全局閾值選取的Canny算法對圖3(g)邊緣檢測結果,參數設置與實驗1中一致;圖3(i) 為本文提出的基于局部區域動態閾值提取的邊緣檢測算法作用于圖(g)的結果,r=30,其他參數設置與實驗1中一致。實驗結果圖3(h)與(i)對比,全局閾值選取法存在丟邊現象,丟失了左下角操場邊緣;本文提出的閾值選取法檢測出了圖中重要邊緣。表1記錄3實驗3中各方法的邊緣點檢測數量。 5 結束語 本文針對現有的邊緣檢測方法中選取閾值不當、造成重要邊緣丟失的問題,提出了基于局部區域的動態閾值選取方法,解決了現有局部區域閾值選取方法實用性差的問題。實驗表明,本文采用的基于局部區域動態閾值選取的邊緣檢測方法,較全面地提取圖像中各類邊緣,不易受噪聲影響;文中提出的局部區域快速閾值選取法有較低的時間復雜度。 參考文獻: [1]CANNY J.A computational approach to edge detection [J]. IEEE Trans on Pattern Analysis and Machine Intelligence, 1986, 8(6): 679-698. [2]ELMABROUK A,AGGOUN A.Edge detection using local histrogram analysis.[J] Electronics Letters,1998,34(12): 1216-1217. [3]WAN Shuai, YANG Fu-zheng, HE Ming-yi. Gradient-threshold edge detection based on perceptually adaptive threshold selection[C]//Proc of the 3rd Conference on Industrial Electronics and Applications.2008:999-1002. [4]ROSIN P,WESST G A W . Segmentation of edges into lines and arcs[J]. Image and Vision Computing,1989,7(2):109-114. [5]VOORHEES H,POGGIO T.Detecting textons and texture boundaries in natural images[C]//Proc of the 1st International Conference on Computer Vision.1987:250-258. [6]羅宏文,馬駟良,徐中宇.基于統計的顯微圖像邊緣檢測閾值分析方法[J].吉林大學學報:理學版,2006,44(3):397-400. [7]華剛,鄭南寧,薛建儒.基于改進遺傳算法的邊緣檢測閾值自動選取及其應用[J].小型微型計算機系統,2002,23(3):318-321. [8]YU Yuan-hui,CHANG C C. A genetic-base adaptive threshold selection method for dynamic path tree structured vector quantization[J].Image and Vision Computing,2005,23(6):597-609.