高巧麗,高新明
(1.黑龍江科技大學 電氣與控制工程學院,哈爾濱150022; 2.山東交通職業(yè)學院,山東 濰坊 261000)
高壓輸電線路的主要作用是傳輸電能,在電能傳輸過程中對其穩(wěn)定和安全性能具有很高的要求。由于高壓輸電線路分布十分廣泛,其經過的地域不同,地勢復雜,僅靠人工檢測非常困難,因此,出現(xiàn)很多無人機和機器人巡檢設備,為高壓輸電線路的安全檢測提供了便捷。機器人和無人機巡檢過程中收集大量的圖像,如何實時精準地發(fā)現(xiàn)高壓輸電線路的故障及懸掛異物并進行邊緣檢測是一項很大的技術挑戰(zhàn)。高壓輸電線路跨越的地域十分廣泛,存在的故障及懸掛的異物不同,一般常見的懸掛物有鳥巢、塑料袋、樹枝、雜草、風箏等。本文以高壓傳輸線上懸掛風箏的圖像為例進行圖像邊緣檢測。
目前常用的圖像邊緣檢測算法有Roberts算子、Sobel算子、Prewitt算子、Laplacian算子等[1]。主要是通過計算取梯度極大值或者二階導數過零點進行圖像邊緣檢測,這些算子在邊緣定位時各有其特點。Roberts算子在對角線方向上,根據相鄰兩像素點之差近似梯度幅值對圖像進行邊緣檢測,它檢測水平和垂直邊緣的效果好,但是對斜側方向檢測不夠精準[2]。Sobel算子根據像素點上下、左右相鄰點之間的灰度加權差和在邊緣處極值來檢測邊緣,對噪聲具有平滑作用,能夠提供較精確的邊緣信息,但缺點是其邊緣定位精度不夠高[1]。所以本文提出改進的Prewitt圖像邊緣檢測算法。
Prewitt算子是一組方向算子模板,從不同的方向進行邊緣檢測,上下左右算子相同,去掉部分偽邊緣,對噪聲具有平滑作用[3]。其原理是利用雙向模板與圖像空間進行鄰域卷積。雙向模板一個檢測水平邊緣,另一個檢測垂直邊緣[4]。水平和垂直梯度模板如圖1所示,圖像像素(x,y)位置分布如表1所示。
圖1 水平和垂直梯度模板
表1 圖像像素分布表
對數字圖像f(x,y),Prewitt算子的定義如下:
G(x)=|f(x+1,y-1)+f(x,y)+f(x+1,y+1)-f(x-1,y-1)-f(x-1,y)-f(x-1,y+1)|G(y)=|f(x-1,y+1)+f(x,y+1)+f(x+1,y+1)-f(x-1,y-1)-f(x,y-1)-f(x+1,y-1)|則
P(x,y)=max[G(x),G(y)]
式中:P(x,y)是數字圖像像素點(x,y)處的梯度值;Th(x,y)是數字圖像像素點(x,y)處的閾值;Th是人工選取的閾值。
經典Prewitt算子認為:凡是圖像灰度值大于等于閾值的像素點認為它是邊緣點。即選擇合適恰當的閾值Th,若P(x,y)≥Th,則(x,y)為邊緣點,P(x,y)為邊緣圖像。這種判定是不合理的,會造導致邊緣點的誤判,因為許多噪聲點具有很大的灰度值,而且對于較小幅值的邊緣點,其邊緣可能會丟失[5]。另外Prewitt算子模板對方向的選擇太過于簡單,無法準確完整地檢測邊緣結構。因此對傳統(tǒng)Prewitt算子存在的問題,提出了一種改進的Prewitt算子。
傳統(tǒng)的Prewitt算子由水平方向與垂直方向模板組成,所以只能對水平和垂直方向的邊緣進行檢測,無法檢測斜側方向,使邊緣檢測不完整。改進的Prewitt算法添加了左右斜側方向的模板,使邊緣檢測更加完整。改進后Prewitt算子模板如圖2所示,改進后的Prewitt算子方向模板如圖3所示。
圖2 改進后Prewitt方向模板
圖3 邊緣檢測的方向模板示意圖
改進后模板表達式:
G(x)=|f(x+1,y-1)+f(x,y)+f(x+1,y+1)-
f(x-1,y-1)-f(x-1,y)-f(x-1,y+1)|
G(y)=|f(x-1,y+1)+f(x,y)+f(x,y+1)-f(x+
1,y+1)-f(x,y-1)-f(x+1,y+1)|
G(x+45)=|f(x,y-1)+f(x+1,y-1)+f(x+1,y)-f(x-1,y)-f(x-1,y+1)-f(x+1,y-1)|
G(y+45)=|f(x+1,y)+f(x+1,y-1)+f(x,y+
1)-f(x-1,y-1)-f(x,y-1)-f(x-1,y)|
圖像f(x,y)在像素點(x,y)位置處的梯度幅值為
G(x,y)=max{G(x),G(x+45),
G(y),G(y+45)}
合理的閾值對圖像邊緣的檢測具有重要的作用,傳統(tǒng)的Prewitt算子閾值需人工選取,并且需要通過人眼觀測,存在很多缺點和不足。如果閾值選取的太高,容易導致邊緣檢測不完整,如果閾值選取的太低,又易導致邊緣選取的過多,導致邊緣選取不準確。改進后的Prewitt算子根據圖像像素的變化動態(tài)選取閾值代替人工選取,使圖像邊緣檢測更加準確。
式中:P(i,j)是在像素(x,y)點的梯度值;N是總像素數;Th(x,y)是點(x,y)的動態(tài)閾值。
1)輸入高壓輸電線原始圖像;
2)將圖像進行預處理,對圖像進行去噪聲處理,并將圖像二值化,使其變?yōu)榛叶葓D像;
3)對圖像進行邊緣檢測,在傳統(tǒng)的Prewitt算法的基礎上增加2個斜側方向的算子模板;
4)獲取動態(tài)閾值;
5)根據動態(tài)閾值提取圖像邊緣。
改進的Prewitt算子對高壓輸電線圖像進行邊緣檢測流程圖如圖4所示。
圖4 圖像邊緣檢測流程圖
采用Matlab2014a,用改進后的Prewitt算法對高壓輸電線懸掛物圖像進行邊緣檢測模擬仿真,改進的Prewitt算子模擬仿真效果如圖5所示,傳統(tǒng)的Prewitt算子模擬仿真效果如圖6所示。將圖5與圖6進行比較可以看出,改進后的Prewitt算法可以更完整準確地將高壓輸電線懸掛風箏的圖像邊緣進行提取。
圖6 傳統(tǒng)Prewitt算子
圖5 改進Prewitt算子
為了得到改進Prewitt算子圖像邊緣檢測高效準確的效果,分別用Roberts算子,Sobel算子,Prewitt算子和Laplacian算子,通過Matlab仿真模擬對高壓輸電線懸掛物圖像進行邊緣檢測,并比較每個算子效果圖[2],如圖7~9所示,圖像原圖如圖10所示。
圖10 圖像原圖
圖7 Roberts算子
實驗一:采用Roberts算子,如圖7所示。Roberts 算子可以較準確地對圖像進行邊緣檢測,尤其在水平方向與垂直方向。但該算子對噪聲較敏感,對于灰度變化較弱的邊緣圖像檢測不準,這導致在提取高壓輸電線懸掛異物的圖像邊緣檢測時出現(xiàn)斷續(xù)的現(xiàn)象。
實驗二:采用Sobel算子,如圖8所示。Sobel算子采用了水平與垂直方向模板進行邊緣檢測。方向模板比較簡單,但是只是對水平與垂直方向的邊緣檢測比較敏感,對其余方向的灰度檢測存在問題。所以在提取高壓輸電線懸掛異物圖像時過于粗略,出現(xiàn)邊緣提取不完整的現(xiàn)象。
圖8 Sobel算子
實驗三:采用Laplacian算子,如圖9所示。Laplacian算子是二階微分算子,它的特點是與坐標軸方向無關,并且坐標軸旋轉后梯度結果不變。但是,其對噪聲非常敏感,因此通常的分割算法都是把Laplacian算子和平滑算子結合生成新模板。通常Laplacian算子對噪聲具有不可接受的敏感性,所以Laplacian算子不能檢測邊緣的方向,因此出現(xiàn)了對高壓輸電線圖像進行邊緣檢測不完整的現(xiàn)象。
圖9 Laplacian算子
對基于傳統(tǒng)的Prewitt算子的缺點與不足,提出了改進Prewitt算子對高壓輸電線懸掛物圖像進行邊緣檢測,并且用Matlab進行模擬仿真,比較了各種邊緣檢測算法的特點。實驗結果表明,改進后的Prewitt算法對高壓輸電線圖像的邊緣提取更準確,對高壓輸電線智能巡線工作的效率有所提高,具有可行性。而在圖像邊緣檢測過程中,其運算速率有待提高改進。