【摘要】本設(shè)計(jì)采用NI公司機(jī)器視覺開發(fā)包,搭建了用于攝像頭圖像采集與處理的LabVIEW程序框架,并在此框架下通過調(diào)用動(dòng)態(tài)鏈接庫(kù)方式實(shí)現(xiàn)了一種基于圖像清晰度的評(píng)價(jià)算法。經(jīng)實(shí)際測(cè)量,獲得了理想的聚焦評(píng)價(jià)效果。
【關(guān)鍵詞】LabVIEW;IMAQ Vision;圖像清晰度;攝像頭聚焦
1.引言
LabVIEW是美國(guó)國(guó)家儀器公司(NI)研發(fā)的基于圖形界面化的編程語(yǔ)言——即G語(yǔ)言的一款程序開發(fā)軟件。LabVIEW簡(jiǎn)單易用,用其進(jìn)行虛擬儀器軟件的開發(fā)可大大縮短開發(fā)周期,使工程技術(shù)人員把更多的精力用于所研究技術(shù)領(lǐng)域。
本文使用LabVIEW2012平臺(tái)結(jié)合NI公司的VISION ACCQUISITION Software 2012(VAS2012)和NI VISION DEVELOPMENT MUDULE 2012(VDM2012)機(jī)器視覺軟件開發(fā)包,獲取了通用USB攝像頭圖像,通過實(shí)現(xiàn)一種基于圖像清晰度評(píng)價(jià)函數(shù)的算法,對(duì)攝像頭固定焦距情況下的聚焦效果進(jìn)行了評(píng)價(jià)。該LabVIEW程序框架只需調(diào)用相應(yīng)的外部動(dòng)態(tài)鏈接庫(kù)文件即可實(shí)現(xiàn)不同要求的基于圖像處理的攝像頭聚焦評(píng)價(jià)軟件。
2.基于圖像清晰度的聚焦評(píng)價(jià)軟件設(shè)計(jì)
基于圖像清晰度進(jìn)行攝像頭聚焦評(píng)價(jià)原理:當(dāng)物體沿垂直焦平面方向移動(dòng)時(shí),聚焦圖像比離焦圖像含有更多的灰度變化,對(duì)應(yīng)于圖像處理中為邊緣梯度的變化,離焦量越小圖像邊緣越銳利,具有更大的圖像灰度梯度值[1]。其基于圖像清晰度聚焦評(píng)價(jià)軟件設(shè)計(jì)框圖如圖1所示:
圖1 基于圖像清晰度聚焦評(píng)價(jià)軟件設(shè)計(jì)框圖
2.1 圖像的獲取
NI公司的機(jī)器視覺開發(fā)包提供了兩種圖像獲取子VI——高級(jí)子VI和低級(jí)子VI。使用低級(jí)子VI能夠更加靈活的實(shí)現(xiàn)攝像設(shè)備的檢索、配置、開始和關(guān)閉功能。
低級(jí)子VI獲取攝像頭圖像的一般步驟[2]如圖2所示:
圖2 獲取攝像頭圖像流程
在獲取圖像數(shù)據(jù)之前,需要?jiǎng)?chuàng)建內(nèi)存緩沖區(qū)來(lái)接收攝像設(shè)備圖像數(shù)據(jù),利用IMAQdx Create.vi完成此功能,不使用已創(chuàng)建的內(nèi)存緩沖區(qū)時(shí),通過IMAQdx Dispose.vi釋放分配的內(nèi)存緩沖區(qū)資源。
2.2 圖像的預(yù)處理
NI公司的機(jī)器視覺開發(fā)模塊包含有圖像預(yù)處理需要的子VI函數(shù)。圖3所示程序?yàn)槭褂猛ㄓ肬SB攝像頭獲取得到RGB彩色圖像,在圖像獲取程序的基礎(chǔ)上利用IMAQ Cast Image.vi和IMAQ ExtractSingleColorPlane.vi子VI轉(zhuǎn)換得到對(duì)應(yīng)灰度圖像過程[3]。
圖3 獲取攝像頭灰度圖像程序
IMAQ Cast Image.vi能夠把已有圖像按指定圖像類型進(jìn)行轉(zhuǎn)換。在圖3中首先通過IMAQ Cast Image.vi將獲取的RGB圖像轉(zhuǎn)換為HSL圖像,HSL圖像包含有圖像的色調(diào)、飽和度和亮度信息,圖像的灰度值對(duì)應(yīng)于HSL圖像中的亮度值,利用IMAQ ExtractSingleColorPlane.vi把圖像亮度值提取出來(lái),即獲得了圖像的灰度值,完成聚焦評(píng)價(jià)的圖像預(yù)處理過程。
2.3 基于圖像清晰度評(píng)價(jià)算法的實(shí)現(xiàn)
傳統(tǒng)的基于梯度的自動(dòng)聚焦算法[4]有Robert梯度算法和水平、垂直方向的灰度差分絕對(duì)值之和(SMD)算法。
Robert梯度算法使用圖像區(qū)域斜方向正負(fù)45°像素點(diǎn)灰度差值的絕對(duì)值之和作為算子,反映了圖像中斜方向灰度梯度的變化。SMD算法使用圖像區(qū)域水平和垂直方向像素點(diǎn)差值的絕對(duì)值之和作為算子,反映圖像水平和垂直方向灰度梯度的變化。
為了在一定程度上反映圖像區(qū)域水平垂直方向和斜45°方向灰度梯度變化,采用SMD算子與Robert梯度算子之和作為圖像清晰度評(píng)價(jià)算子。其算法公式如下:
其中,為圖像算子,k為圖像算子值序列。
針對(duì)LabVIEW自身對(duì)于大量運(yùn)算執(zhí)行時(shí)間長(zhǎng),內(nèi)存消耗大的缺點(diǎn),采用調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)(Call Library Function)調(diào)用動(dòng)態(tài)鏈接庫(kù)(Dynamic Link Library,DLL)這一方法實(shí)現(xiàn)圖像清晰度評(píng)價(jià)算法。
圖4 基于灰度梯度的圖像清晰度算法程序
圖4所示程序中從攝像頭獲取的圖像經(jīng)預(yù)處理后,通過IMAQ ImageToArray.vi轉(zhuǎn)換為所選圖像區(qū)域每個(gè)像素點(diǎn)的灰度值,輸出為二維數(shù)組,且有多種數(shù)據(jù)類型輸出端口,此處選擇輸出無(wú)符號(hào)8位整型數(shù)據(jù)進(jìn)行梯度算子的計(jì)算。
在灰度梯度值統(tǒng)計(jì)過程中,聚焦點(diǎn)附近統(tǒng)計(jì)灰度梯度值小于較小數(shù)值時(shí),模糊圖像和清晰圖像中符合要求的像素點(diǎn)數(shù)相差不大,甚至?xí)霈F(xiàn)模糊圖像大于清晰圖像的情況。為了提高評(píng)價(jià)效果,需要進(jìn)行一定的閾值處理(閾值的選擇因梯度函數(shù)的不同而不同),去掉較小灰度梯度值的干擾,提高圖像清晰度評(píng)判結(jié)果的準(zhǔn)確性[5]。
LabVIEW中使用CLF調(diào)用的DLL文件可在外部集成開發(fā)環(huán)境Microsoft Visual C++6.0中編寫生成[6],主要函數(shù)原型及實(shí)現(xiàn)代碼如下:
uint32_t image_process(uint32_t arrayin[],uint32_t x,uint32_t y,uint32_t threshold)
{
uint32_t i=0,j=0,k=0;
uint32_t count=0;
for(i=0;i { for(j=0;j { arrayin[i*y+j]=abs(arrayin[i*y+j]-arrayin[(i+1)*y+j]) +abs(arrayin[i*y+j]-arrayin[i*y+j+1]) +abs(arrayin[i*y+j]-arrayin[(i+1)*y+ j+1]) +abs(arrayin[(i+1)*y+j]-arrayin[i*y+ j+1]); if(arrayin[i*y+j]>=threshold)count++; } } return count; } 圖5 基于灰度梯度的清晰度算法程序運(yùn)行界面 圖6 不同聚焦程度的測(cè)試圖像 圖7 表1數(shù)據(jù)歸一化評(píng)價(jià)曲線 圖5所示測(cè)試程序顯示設(shè)置閾值為160,評(píng)價(jià)區(qū)域?yàn)橹虚g64×48大小像素區(qū)域,灰度梯度最大值為372,高于閾值160的灰度梯度值個(gè)數(shù)為2985。 3.實(shí)驗(yàn)結(jié)果 為驗(yàn)證所設(shè)計(jì)圖像清晰度評(píng)價(jià)程序效果,使用帶圖像采集功能的光學(xué)顯微鏡作為測(cè)試平臺(tái)。測(cè)試圖像如圖6所示,其中攝像頭圖像分辨率為800×600,顯微放大40倍,從離焦到過焦位置調(diào)整間隔250m(順序從左到右,從上到下),電路板過孔圖像。 表1 不同圖像高于閾值的算子值個(gè)數(shù)統(tǒng)計(jì)表 由于光源照射及周圍光線等原因,選擇使用圖6各圖像像素區(qū)域大小330×270(像素位置左:240上:140右:570下:410)作為聚焦評(píng)價(jià)源數(shù)據(jù)。 從圖6、圖7和表1可以看出,曲線具有單峰性,越靠近峰值處圖像越清晰;采用不同的函數(shù)閾值(如表1所示),會(huì)得到不同的歸一化評(píng)價(jià)曲線,適當(dāng)選取一定閾值,以使程序更容易準(zhǔn)確評(píng)價(jià)圖像聚焦效果。 4.小結(jié) 通過LabVIEW編程軟件,基于SMD算子與Robert梯度算子之和新算子的圖像清晰度評(píng)價(jià)算法,設(shè)計(jì)實(shí)現(xiàn)了圖像清晰度評(píng)價(jià)軟件,并通過帶圖像采集功能的光學(xué)顯微鏡對(duì)軟件程序進(jìn)行了驗(yàn)證。結(jié)果表明,聚焦評(píng)價(jià)軟件能夠?qū)呙栉矬w在焦平面附近沿垂直焦平面方向250m位移作出理想的分辨。在本文基礎(chǔ)上,增加外圍通信控制功能,可進(jìn)一步實(shí)現(xiàn)攝像頭對(duì)掃描物體的自動(dòng)聚焦功能。 參考文獻(xiàn) [1]高贊,等.基于Roberts梯度的自動(dòng)聚焦算法[J].紅外與激光工程,2006(01):117-121. [2]NATIONAL INSTRUMENTS.NI-IMAQdx User Manual,2007. [3]NATIONAL INSTRUMENTS.Digital Image Proce ssing,2003. [4]高贊,姜威與朱孔鳳.基于最大梯度和閾值的自動(dòng)聚焦算法[J].電子測(cè)量與儀器學(xué)報(bào),2007(05):49-54. [5]朱孔鳳,等.一種新的圖像清晰度評(píng)價(jià)函數(shù)[J].紅外與激光工程,2005(04):464-468. [6]李高升,等.LabVIEW中DLL文件的創(chuàng)建及其應(yīng)用[J].現(xiàn)代電子技術(shù),2005(05):24-25. 國(guó)家863項(xiàng)目“海洋可控源水下系統(tǒng)裝備研制和理論研究”(項(xiàng)目編號(hào):93120114H)。 作者簡(jiǎn)介:亓夫軍(1964—),男,碩士研究生,中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院副教授,主要研究方向:光電探測(cè)和自動(dòng)控制。