摘 要: 邊緣提取是數(shù)字圖像處理技術(shù)的一個(gè)重要環(huán)節(jié),被廣泛應(yīng)用于工業(yè)檢測領(lǐng)域之中。弧齒錐齒輪的接觸斑點(diǎn)形態(tài)是衡量其傳動(dòng)性能的重要指標(biāo)之一。在接觸斑點(diǎn)數(shù)字化識別的過程中,其圖像的邊緣提取是非常重要的一步。本文提出的邊緣檢測方法將Canny檢測算子應(yīng)用于處理過后的二值目標(biāo)圖像,經(jīng)過實(shí)驗(yàn)對比,明顯優(yōu)于傳統(tǒng)基于灰度圖像進(jìn)行處理的結(jié)果。
關(guān)鍵詞: 弧齡錐齒輪 接觸斑點(diǎn)數(shù) 字化識別 邊緣檢測 圖像的邊緣提取
1.引言
弧齒錐齒輪由于接觸區(qū)域大、滑動(dòng)速度小等優(yōu)點(diǎn)被廣泛應(yīng)用于航空工業(yè)、汽車工業(yè)和重型礦山設(shè)備等領(lǐng)域。接觸斑點(diǎn)是衡量弧齒錐齒輪嚙合質(zhì)量的重要指標(biāo)之一。傳統(tǒng)的弧齒錐齒輪檢測方式是在對滾機(jī)上通過一對齒輪的涂色層對滾,然后讓經(jīng)驗(yàn)豐富的技術(shù)人員目測齒面留下的接觸斑點(diǎn)位置形態(tài)來判斷其是否合格及嚙合質(zhì)量的優(yōu)良。這種方法過于依賴于技術(shù)人員的現(xiàn)場經(jīng)驗(yàn),很難使判斷精準(zhǔn)化和標(biāo)準(zhǔn)化,給齒面的進(jìn)一步修正帶來困難[1]。
隨著數(shù)字圖像處理技術(shù)的迅猛發(fā)展,邊緣檢測技術(shù)逐漸被推廣到工業(yè)檢測的各個(gè)領(lǐng)域當(dāng)中。基于計(jì)算機(jī)圖像處理技術(shù)的快速新型檢測方法被應(yīng)用于輪齒接觸斑點(diǎn)檢測。在弧齒錐齒輪接觸斑點(diǎn)數(shù)字化識別的過程中,其圖像的邊緣提取是非常重要的一步。
2.傳統(tǒng)邊緣檢測算法
圖像像素局部強(qiáng)度變化最顯著的部分稱之為邊緣。它是圖像最基本的特征之一。由于沿邊緣走向的像素變化平緩,而垂直于邊緣方向的像素變化劇烈,因此經(jīng)典的邊緣提取方法都是利用邊緣鄰近的一階或二階方向?qū)?shù)變化規(guī)律來確定邊緣像素。常用的一階微分算子有Roberts算子、Prewitt算子、Sobel算子,二階微分算子有LoG算子,另外,還有基于優(yōu)化理論的Canny邊緣檢測算子[2]-[3]。
2.1一階微分算子
由于邊緣是圖像灰度變化比較劇烈的地方,在灰度突變處求導(dǎo)將產(chǎn)生極大值,因此在數(shù)學(xué)上可用灰度導(dǎo)數(shù)的大小來表示灰度變化。梯度對應(yīng)的是一階導(dǎo)數(shù)的信息,因此梯度算子就是一階導(dǎo)數(shù)算子。基于梯度的邊緣檢測算子是圖像處理中最為常用的方法之一。
任意一幅圖像f(x,y)在點(diǎn)(x,y)的梯度可寫成矢量形式:
則該梯度的幅值為:
梯度的方向則由下式定義,其中θ是與x軸的夾角。
然而由于數(shù)字圖像是離散的,一般用一階差分來代替一階倒數(shù)進(jìn)行運(yùn)算,其定義的形式為:
常用的一階微分算子有Roberts算子、Prewitt算子和Sobel算子。Roberts算子是一種斜向偏差分的梯度計(jì)算方法,梯度的方向與邊緣走向垂直,在水平和垂直方向檢測效果較好;Prewitt算子不僅能檢測邊緣點(diǎn),而且能抑制噪聲的影響,對灰度和噪聲較多的圖像處理得較好;Sobel算子利用像素鄰近區(qū)域的梯度值來計(jì)算1個(gè)像素的梯度,然后根據(jù)一定的閥值來取舍。Sobel算子能夠提供較為精確的邊緣方向信息,但是由于局部平均的影響,它同時(shí)也會(huì)檢測出許多偽邊緣,且邊緣定位精度小,得到的邊緣較粗。
2.2二階微分算子
一階微分算子對圖像求一階導(dǎo)數(shù)當(dāng)高于某一閾值時(shí),則確定該點(diǎn)為邊緣點(diǎn)。這樣會(huì)導(dǎo)致檢測的邊緣點(diǎn)太多,檢測得到的邊緣也會(huì)較粗,這就影響了邊緣定位的精度。另一種方法就是求梯度局部最大值對應(yīng)的點(diǎn),即求二階導(dǎo)數(shù),并認(rèn)定它們是邊緣點(diǎn),這樣可以檢測出更精確的邊緣。但同時(shí)也很明顯,二階導(dǎo)數(shù)算法要比一階導(dǎo)數(shù)復(fù)雜,實(shí)現(xiàn)起來相對困難。常見的二階導(dǎo)數(shù)的邊緣檢測算子有Laplacian算子、LoG算子。
Laplacian算子是通過尋找圖像灰度值二階導(dǎo)數(shù)的零交叉點(diǎn)來檢測圖像邊緣點(diǎn)的,它對細(xì)線和孤立點(diǎn)檢測效果較好,對方向不敏感。但由于Laplacian算子為二階差分,其方向信息常丟失,從而產(chǎn)生雙像素,對噪聲起到加倍作用,所以它很少直接用于邊緣檢測。為此,Marr和Hildreth提出先采用高斯低通濾波器對圖像進(jìn)行預(yù)先平滑,然后對濾波后的圖像進(jìn)行Laplacian運(yùn)算,此時(shí)二階導(dǎo)數(shù)值等于零的像素點(diǎn)被認(rèn)為是邊界點(diǎn)。這種算子被稱為LoG算子,有的文獻(xiàn)當(dāng)中也把LoG算子叫做馬爾算子。LoG算子是在Laplacian算子的基礎(chǔ)上實(shí)現(xiàn)的,它得益于對人的視覺機(jī)理的研究,有一定的生物和生理學(xué)意義。
2.3基于優(yōu)化理論的Canny檢測算子
1986年JohnCanny在IEEE上發(fā)表了一篇題為A Computational Approach to Edge Detectio的文章。在文中他把邊緣檢測問題轉(zhuǎn)化為檢測單位函數(shù)極大值的問題,并對過去的一些方法和應(yīng)用作了總結(jié),同時(shí)提出了評價(jià)邊緣檢測性能優(yōu)劣的三個(gè)標(biāo)準(zhǔn):(1)信噪比準(zhǔn)則,即把非邊緣點(diǎn)判斷為邊緣點(diǎn)的概率要低,把邊緣點(diǎn)判斷為非邊緣點(diǎn)的概率要低;(2)高定位精度準(zhǔn)則,即準(zhǔn)確地將檢測出的邊緣點(diǎn)定位在實(shí)際邊緣的中心;(3)單邊緣響應(yīng)準(zhǔn)則,即單個(gè)邊緣產(chǎn)生多個(gè)響應(yīng)的概率要低,并且虛假響應(yīng)邊界應(yīng)得到最大抑制。
利用Canny算子進(jìn)行邊緣檢測的具體步驟如下:首先用高斯函數(shù)對圖像進(jìn)行低通濾波的平滑處理;然后通過Soble算子、Roberts算子等一階微分算子求導(dǎo)來計(jì)算梯度的幅值和方向;再對得到的梯度幅值進(jìn)行非極大值抑制;最后用雙閾值算法來連接邊緣。
Canny算子使用兩個(gè)閾值來分別檢測強(qiáng)邊緣和弱邊緣,而且僅當(dāng)弱邊緣與強(qiáng)邊緣相連時(shí),弱邊緣才會(huì)被輸出。因此,這種方法不容易受到噪聲干擾,能夠檢測到真正的弱邊緣,適用于對檢測精度要求較高的場合。
2.4傳統(tǒng)邊緣檢測算子實(shí)驗(yàn)結(jié)果對比
在運(yùn)用傳統(tǒng)的邊緣檢測算子時(shí),一般是直接對目標(biāo)灰度圖像進(jìn)行處理。為對上述檢測算子進(jìn)行比較分析,我們基于Matlab7.0編制相應(yīng)的程序?qū)↓X錐齒輪接觸斑點(diǎn)灰度圖像進(jìn)行邊界提取處理,實(shí)驗(yàn)環(huán)境為Intel(R) Pentium(R) 4 CPU 3.00GHz,1G內(nèi)存。實(shí)驗(yàn)結(jié)果如圖1所示。
從實(shí)驗(yàn)結(jié)果可知,Roberts算子、Prewitt算子和Sobel算子三個(gè)一階算子由于模板都比較簡單,雖然操作相對比較方便,但提取出的邊緣卻都不是很完整、連續(xù)性較差、斷點(diǎn)很多,特別是Roberts算子提取出的接觸斑點(diǎn)邊界非常模糊。與一階微分邊緣檢測算子相比,LoG算子檢測出了更多的邊緣,定位精度相對較高,但接觸斑點(diǎn)邊界仍然還是不完整。
與其它的邊緣檢測方法相比,Canny檢測算子雖然比較完整地提取出了接觸斑點(diǎn)的邊界,但同時(shí)也檢測出了許多的偽邊緣,為分析接觸斑點(diǎn)位置形態(tài)帶來了很大的干擾。因此,提取的邊界結(jié)果也不能滿足要求
3.基于數(shù)學(xué)形態(tài)學(xué)的邊緣檢測
數(shù)學(xué)形態(tài)學(xué)是一種非線性的濾波方法,它以嚴(yán)格的數(shù)學(xué)理論和幾何學(xué)為基礎(chǔ),著重研究圖像的幾何結(jié)構(gòu)及其相互關(guān)系。其基本思想是:根據(jù)原圖像目標(biāo)特征選取適合的結(jié)構(gòu)元素,利用結(jié)構(gòu)元素對原圖像進(jìn)行平移、交、并等運(yùn)算,然后將結(jié)果圖輸出。數(shù)學(xué)形態(tài)學(xué)不僅可以簡化圖像數(shù)據(jù),并能在保持基本形狀特征的基礎(chǔ)上去除不相干結(jié)構(gòu)[4]-[7]。和微分檢測算子不同,數(shù)學(xué)形態(tài)學(xué)的基礎(chǔ)是二值形態(tài)學(xué),基于數(shù)學(xué)形態(tài)學(xué)的邊緣檢測,其檢測對象一般為二值圖像,基本運(yùn)算主要為以下四種。
3.1膨脹運(yùn)算
膨脹的算符為?茌,A用B來膨脹寫作A?茌B,其定義為:
3.2腐蝕運(yùn)算
腐蝕運(yùn)算是膨脹運(yùn)算的對偶運(yùn)算,腐蝕的算符為Θ,A用B來膨脹寫作AΘB,其定義為:
3.3開啟運(yùn)算
對圖像先進(jìn)行腐蝕后進(jìn)行膨脹,這種運(yùn)算就叫做開啟運(yùn)算。開啟的算符為○,A用B來開啟寫作A○B(yǎng),其定義為:A○B(yǎng)=(AΘB)?茌B。
3.4閉合運(yùn)算
如果先對圖像進(jìn)行膨脹后進(jìn)行腐蝕操作,這種運(yùn)算就叫做閉合運(yùn)算。閉合的算符為,A用B來閉合寫作AB,其用Matlab編制程序,對接觸斑點(diǎn)的二值圖像的進(jìn)行邊緣提取,其結(jié)果如圖2所示。基于數(shù)學(xué)形態(tài)學(xué)的圖像邊緣檢測方法與微分算子法邊緣檢測方法相比,具有算法簡單、運(yùn)算速度快、效果好等優(yōu)點(diǎn)。用形態(tài)學(xué)邊緣檢測方法處理后所得的結(jié)果圖像,在邊緣的連續(xù)性及各項(xiàng)同性方面都優(yōu)于傳統(tǒng)方法,形態(tài)學(xué)邊緣檢測方法對圖像細(xì)節(jié)和邊緣定位也有相當(dāng)好的效果。但我們從圖2中可以看出,邊緣檢測的結(jié)果中還是存在一些不需要的邊緣信息。接觸斑點(diǎn)的內(nèi)部出現(xiàn)了一些不規(guī)則的邊界區(qū)域。
4.基于二值圖像的Canny邊緣提取
由于原接觸斑點(diǎn)圖像為灰度圖像,我們首先把灰度圖像轉(zhuǎn)換成二值圖像。在給定一個(gè)閾值T后,圖像的二值化處理可用下式表示:
B(x,y)=1,f(x,y)≤T0,f(x,y)>T。
一般情況下,我們設(shè)定B(x,y)=1的像素集合為目標(biāo)景物區(qū)域,B(x,y)=0的像素集合為背景區(qū)域。上式中的f與T的關(guān)系也可按相反的表達(dá)式來表示。本文中二值圖的閾值選取為0.35,轉(zhuǎn)換后的圖像如圖3所示。
從圖3中我們可以看到,二值化后的圖像在接觸斑點(diǎn)內(nèi)部存在很多不連續(xù)的黑色區(qū)域,如果對其直接進(jìn)行邊緣提取必將會(huì)出現(xiàn)冗余信息,即在接觸斑點(diǎn)內(nèi)部形成一系列的偽邊界。因此,我們運(yùn)用Matlab中的區(qū)域填充函數(shù)imfill,先對二值圖像進(jìn)行填充[8],填充結(jié)果如圖4所示。
對二值圖像進(jìn)行區(qū)域填充后,再運(yùn)用Canny算子對其進(jìn)行邊緣提取,如圖5所示。從圖中我們可以看出,對區(qū)域填充過后的二值圖像再進(jìn)行Canny邊緣提取時(shí),在接觸斑點(diǎn)內(nèi)部已經(jīng)沒有多余邊界信息了,但在接觸斑點(diǎn)的左下角和右上角還存在齒面的一些邊界信息。在Matlab中使用去除小面積函數(shù)bwareaopen,同時(shí)選取除去面積值為150,對圖像進(jìn)行處理便可得到完整清晰的接觸斑點(diǎn)邊界。
5.結(jié)語
我們在使用傳統(tǒng)的微分邊緣檢測算子的時(shí)候,往往是直接對灰度圖像進(jìn)行處理,檢測出的邊緣信息連續(xù)性不好,并且存在很多不需要的偽邊界信息,檢測結(jié)果不能達(dá)到要求。使用數(shù)學(xué)形態(tài)學(xué)方法雖然可以提取出比較完整的邊界,但在一定程度上還是難以把多余邊界信息去除。本文提出的方法將灰度圖像先轉(zhuǎn)換為二值圖像,然后對其進(jìn)行區(qū)域填充處理,再在此基礎(chǔ)上進(jìn)行Canny邊緣提取,最后使用去除小面積函數(shù)清除齒面邊界信息,便可得到清晰完整的接觸斑點(diǎn)圖像,實(shí)驗(yàn)效果非常理想,為弧齒錐齒輪接觸斑點(diǎn)數(shù)字化識別打下了基礎(chǔ)。
參考文獻(xiàn):
[1]方宗德,楊宏斌,周彥偉等.高速弧齒錐齒輪動(dòng)態(tài)嚙合質(zhì)量優(yōu)化[J].航空學(xué)報(bào),2001,22(1):69-72.
[2]王小林,閆興民,謝剛.準(zhǔn)雙曲面齒面接觸斑點(diǎn)圖像處理的邊緣檢測[J].煤礦機(jī)電,2005,(5):65-69.
[3]侯小麗.圖像邊緣檢測技術(shù)發(fā)展綜述[J].太原城市職業(yè)技術(shù)學(xué)院學(xué)報(bào),2009,(6):132-133.
[4]胡永剛,孔敏.形態(tài)學(xué)算法和傳統(tǒng)算法的邊緣檢測比較[J].微處理機(jī),2009,(3):97-98.
[5]李敏,蔣建春.基于腐蝕算法的圖像邊緣檢測的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(1):82-84.
[6]徐國寶,王驥,趙桂艷,等.基于數(shù)學(xué)形態(tài)學(xué)的自適應(yīng)邊緣檢測新算法[J].計(jì)算機(jī)應(yīng)用,2007,29(4):997-1002.
[7]閆海霞,趙曉暉.基于數(shù)學(xué)形態(tài)學(xué)的邊緣檢測方法[J].計(jì)算機(jī)應(yīng)用研究,2008,25(11):3496-3497.
[8]王家文.Matlab 7.6圖形圖像處理[M].北京:國防工業(yè)出版社,2009.