徐凱,張永帥,李楠,甘豪
(長(zhǎng)安大學(xué)汽車(chē)學(xué)院,陜西 西安 710064)
在發(fā)動(dòng)機(jī)噴霧特性的研究過(guò)程中,噴霧錐角和貫穿距離是兩個(gè)重要的宏觀參數(shù)。能精確測(cè)量這兩個(gè)參數(shù),對(duì)控制噴霧過(guò)程及提高燃油經(jīng)濟(jì)性具有重要的意義。本文主要討論噴霧錐角的測(cè)量方法,通常的做法是將數(shù)碼相機(jī)或高速攝像機(jī)拍出的照片放在 photoshop軟件進(jìn)行人工操作,得出噴霧錐角。但這種做法易受人為因素影響,存在較大的誤差,現(xiàn)在僅用作參考值。本文則是利用 MATLAB軟件進(jìn)行相關(guān)程序的編寫(xiě),利用程序來(lái)處理噴霧圖片,獲得了不錯(cuò)的效果。
實(shí)驗(yàn)采用的燃料是純柴油,在空氣中進(jìn)行噴射,用數(shù)碼相機(jī)拍攝一組完整的噴霧過(guò)程。然后篩選出質(zhì)量較好的圖像作為原始圖像。我們知道圖像在采集的過(guò)程中會(huì)受到一系列影響因素的干擾,因而會(huì)產(chǎn)生各種類(lèi)型的噪聲[1],如光照不均、成像設(shè)備的內(nèi)部噪聲、由機(jī)械運(yùn)動(dòng)引起的噪聲等。所以我們首先要對(duì)原始圖像進(jìn)行去噪處理。由于我們采用的是JPG格式的圖像,這種彩色圖像含有大量的信息,為了減少運(yùn)算量和便于數(shù)據(jù)存儲(chǔ),我們把它轉(zhuǎn)化為灰度圖像。在此基礎(chǔ)上再進(jìn)行濾波處理,濾波的目的主要是為了消除或盡量減少噪聲,從而改善圖像的質(zhì)量。由于中值濾波在去除噪聲的同時(shí),不會(huì)使圖像邊界變得模糊,這對(duì)于后續(xù)進(jìn)行邊緣檢測(cè)和閾值分割十分重要,所以這里采用中值濾波。
將噴霧圖像經(jīng)過(guò)上述處理后,為了得到油束的兩條邊緣線,還需要將灰度圖像進(jìn)行二值化,圖像經(jīng)過(guò)二值化處理后,數(shù)據(jù)量進(jìn)一步減少,邊界輪廓逐漸清晰,便于接下來(lái)的操作。當(dāng)然,閾值的選取將十分關(guān)鍵,閾值選取不當(dāng),可能會(huì)造成將背景和目標(biāo)成分相互疊加,造成測(cè)量結(jié)果不準(zhǔn)確。這里選用MATLAB圖像處理工具箱的graythresh函數(shù)(全局閾值)來(lái)自動(dòng)實(shí)現(xiàn)[2]。調(diào)用方式為:
其中I為經(jīng)過(guò)濾波之后的圖像,level為自動(dòng)生成的閾值。執(zhí)行此函數(shù)后得到的圖像如圖1所示。圖像二值化操作完成后,得到了兩條近似的油束邊緣,下面的工作就是將這兩條邊緣線單獨(dú)提取出來(lái),為后續(xù)的邊緣線擬合做準(zhǔn)備。
圖1 閾值分割后的圖像
數(shù)字圖像的邊緣檢測(cè)是圖像分割、目標(biāo)區(qū)域識(shí)別、區(qū)域形狀提取等圖像分析領(lǐng)域的重要基礎(chǔ),在工程應(yīng)用中有十分重要的作用。函數(shù)的導(dǎo)數(shù)反映圖像灰度變化的顯著程度,一階導(dǎo)數(shù)的局部極大值和二階導(dǎo)數(shù)的過(guò)零點(diǎn)都是圖像灰度變化極大的地方,因此可以將這些導(dǎo)數(shù)值作為相應(yīng)點(diǎn)的邊界強(qiáng)度,通過(guò)設(shè)置門(mén)限的方法來(lái)提取邊界。常用的邊緣檢測(cè)算子有Roberts算子、Sobel算子、LOG算子、Canny算子等?;诒疚牡膶?shí)際工況和直觀感受,選用Canny算子作為檢測(cè)算子。
數(shù)學(xué)形態(tài)學(xué)的主要研究?jī)?nèi)容是圖像形態(tài)的幾何特征,結(jié)構(gòu)特征的定性描述與分析,是線性向非線性處理的過(guò)渡。在形態(tài)學(xué)基本運(yùn)算中,腐蝕和膨脹是最基本的運(yùn)算。腐蝕和膨脹的組合可以構(gòu)成開(kāi)運(yùn)算和閉運(yùn)算,可以有效去除一定程度的雜波,而同時(shí)不會(huì)影響目標(biāo)物體的輪廓構(gòu)成。經(jīng)過(guò)一定的形態(tài)學(xué)處理后,我們?cè)儆肅anny算子對(duì)二值圖像的邊緣進(jìn)行檢測(cè),結(jié)果如圖2(左邊)所示,同時(shí)我們調(diào)用bwperim函數(shù)來(lái)確定圖像的目標(biāo)邊界,調(diào)用格式如下:
其中BW1為輸入的二值圖像。conn為連通域,二維圖像可取4、8,三維圖像可取6、18和26。在這里我們?nèi)∵B通數(shù)為8。調(diào)用該函數(shù)后得到的結(jié)果如圖2(右邊)所示,可以看到二者基本吻合。
圖2 形態(tài)學(xué)處理后圖像的邊緣檢測(cè)
這里采用Canny算子檢測(cè)到的油束邊緣作為待擬合的邊緣,為了噴霧錐角的準(zhǔn)確測(cè)量,需要把油束邊界的兩條邊緣線進(jìn)行直線擬合,這樣便于實(shí)現(xiàn)程序化和快速測(cè)量。主流的直線檢測(cè)方式有兩種,Hough變換直線檢測(cè)和最小二乘法直線檢測(cè)。
Hough變換的基本思想是將直線上的每一個(gè)數(shù)據(jù)點(diǎn)變換為參數(shù)平面內(nèi)的一條直線或曲線[2],利用共線的數(shù)據(jù)點(diǎn)對(duì)應(yīng)的參數(shù)曲線相交于參數(shù)空間中一點(diǎn)的關(guān)系,使直線的提取問(wèn)題轉(zhuǎn)換為計(jì)數(shù)問(wèn)題。同時(shí)Hough變換的主要優(yōu)點(diǎn)是抗噪能力強(qiáng)而且受直線中的間隙影響較小。
具體而言,對(duì)于空間坐標(biāo)系的直線方程y=ax+b上的某一點(diǎn)(x0,y0),對(duì)應(yīng)參數(shù)平面(a,b)上的一條直線b= y0-ax0,而且該直線上的所有點(diǎn)在參數(shù)平面內(nèi)對(duì)應(yīng)的直線必相交于一點(diǎn)。另外,為了避免垂直斜率無(wú)窮大的問(wèn)題,在應(yīng)用時(shí)通常采用直線的極坐標(biāo)方程ρ=x cosθ+y sinθ,此時(shí)參數(shù)平面為(ρ,θ)平面。下面是Hough變換的基本原理示意圖。
圖3 (x,y)空間到(ρ,θ)空間的變換
下面將用Hough變換對(duì)油束的兩條邊緣進(jìn)行擬合,以圖2 Canny算子檢測(cè)到的邊緣作為霍夫變換的原始圖片,調(diào)用hough函數(shù)對(duì)原始圖像進(jìn)行處理,具體調(diào)用格式如下:
這里BW為圖2(左邊)所示的原始油束邊界線,為二值圖像。返回的H指的是霍夫變換矩陣,T, R分別為霍夫空間的θ,ρ軸所對(duì)應(yīng)的數(shù)值。
同時(shí)用函數(shù)houghpeaks找出相應(yīng)的峰值點(diǎn),并在霍夫空間中用兩個(gè)紅色的小方框標(biāo)注出來(lái)。對(duì)本文而言要檢測(cè)的目標(biāo)為兩條油束邊緣線,所以在霍夫空間中將會(huì)出現(xiàn)兩個(gè)峰值點(diǎn),這兩個(gè)點(diǎn)就代表了油束的兩條邊緣線。程序的運(yùn)行結(jié)果如圖4所示。最后調(diào)用houghlines函數(shù)來(lái)提取線段,調(diào)用格式如下。
根據(jù) Hough變換的結(jié)果得到圖像 BW 中的線段。參數(shù)theta和rho由函數(shù)hough的輸出得到。peaks表示Hough變換的峰值,由函數(shù)houghpeaks的輸出得到。利用相關(guān)的程序命令找到對(duì)應(yīng)的兩條線段后,需要標(biāo)記出線段的兩個(gè)端點(diǎn),這里設(shè)其中一條線段的兩個(gè)端點(diǎn)分別為(x1,y1)和(x2,y2),則這條線段的斜率可以表示為同理可求出 K2。利用反正切公式可以求得相應(yīng)的錐角,公式如下。
圖4 霍夫變換空間
圖5 霍夫變換擬合線段
繼續(xù)運(yùn)行程序,得到如圖5所示的擬合結(jié)果,圖中兩條綠色的線段代表擬合的油束邊緣,同時(shí)線段的端點(diǎn)也被標(biāo)記出來(lái),便于求得線段的斜率。最終求得θ值為0.2400弧度,轉(zhuǎn)化為角度,即。
最小二乘法(又稱(chēng)最小平方法)是一種數(shù)學(xué)優(yōu)化方法,它通過(guò)最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。本文中把油束的邊緣看做是一系列離散的點(diǎn),利用最小二乘法進(jìn)行擬合,但前提是圖中只有一條可擬合的直線。所以在擬合之前,要先做好準(zhǔn)備工作,即把油束的兩條邊緣分開(kāi),使其各自位于一張圖片中,然后分別進(jìn)行擬合。
在中MATLAB中調(diào)用函數(shù)polyfit來(lái)擬合曲線,具體的調(diào)用格式如下:
其中x, y為離散的數(shù)據(jù)點(diǎn),n為待擬合多項(xiàng)式的次數(shù),這里我們要擬合的為兩條線段,即為直線方程,取 n=1,返回的a 是包含多項(xiàng)式系數(shù)的數(shù)組,這里返回的數(shù)值為線段的斜率。求出兩條線段的斜率 K1、K2后,利用公式求得噴霧錐角。程序的運(yùn)行結(jié)果如圖6所示。
圖6 最小二乘法擬合油束的兩條邊緣線
同時(shí)得到噴霧錐角為13.4999°。
至此油束的噴霧錐角測(cè)量工作已全部完成,細(xì)心的讀者可能已經(jīng)注意到油束的左右邊緣不對(duì)稱(chēng)。這是因?yàn)槲覀兪窃诳諝庵凶龅膶?shí)驗(yàn),實(shí)驗(yàn)室內(nèi)有較弱的空氣流動(dòng),所以對(duì)油束的發(fā)展有干擾作用,所以測(cè)得的錐角比實(shí)際值要小一些。不過(guò)本文重在介紹兩種測(cè)量錐角的方法,對(duì)圖像的預(yù)處理和實(shí)驗(yàn)環(huán)境的要求不夠嚴(yán)謹(jǐn),這是以后需要注意的地方。綜合三種方法測(cè)得的錐角數(shù)據(jù),從擬合線段的優(yōu)良性看,最小二乘法略好于霍夫變換。但是最小二乘法易受強(qiáng)噪點(diǎn)的干擾,導(dǎo)致偏差較大,所以預(yù)處理就顯得十分重要。霍夫變換適應(yīng)性強(qiáng),但對(duì)圖像的分辨率要求較高[3]。所以總體而言,最小二乘法的擬合效果較好。
[1] 朱虹.數(shù)字圖像處理基礎(chǔ)與應(yīng)用[M].清華大學(xué)出版社,2013.
[2] 周品.圖像處理與圖形用戶(hù)界面設(shè)計(jì)[M].清華大學(xué)出版社,2013.
[3] 郭斯羽,翟文娟,唐求,等.結(jié)合 hough變換與改進(jìn)最小二乘法的直線檢測(cè)[J].湖南大學(xué).2012.