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