余小英,李凡生
(廣西民族師范學(xué)院物理與信息技術(shù)系,廣西崇左532200)
傳統(tǒng)的雙棱鏡干涉實(shí)驗(yàn)測量方法中存在干涉條紋中心難以精確定位以及容易引入回程誤差等問題.針對該問題,可借助于計算機(jī)的圖像處理能力,實(shí)現(xiàn)干涉條紋中心的精確定位,避免引入回程誤差,提高測量精度.而Matlab軟件工具幾乎包括了所有經(jīng)典的圖像處理方法,具有很強(qiáng)的可靠性和開放性,使用者無需編寫大量的代碼就可以直接使用.
雙棱鏡干涉實(shí)驗(yàn)是經(jīng)典的光學(xué)實(shí)驗(yàn)之一,運(yùn)用其測量原理,可測量光波波長[1]、透明介質(zhì)折射率等物理量.在雙棱鏡干涉實(shí)驗(yàn)中,各物理量之間關(guān)系為:
其中λ是光源的波長,Δx是干涉條紋的間距,D是虛光源(狹縫)至觀察處之距離,d1和d2為兩虛光源通過凸透鏡二次成像在測微目鏡分劃板上間距.
在傳統(tǒng)測量方法中,d1,d2和Δx通過測微目鏡測量求出,依靠人眼確定干涉條紋的中心,不但精度較低,而且很容易引入回程誤差.這一問題可以用圖像處理技術(shù)加以解決.
從理論上來說,干涉明條紋和干涉暗條紋的寬度應(yīng)該是一樣的.要測量出相鄰的干涉條紋間距,可選擇干涉明條紋或者干涉暗條紋來作為測量對象,二者并無差別.但從拍攝的干涉圖(如圖1)可以看出,干涉暗條紋的寬度比干涉明條紋的寬度小,這是由人眼的視覺特性所造成的.更為重要的是,測微目鏡分劃板上的刻度和叉絲在圖片上也是黑色的.因此,如圖2所示,筆者選擇暗條紋作為研究對象,經(jīng)過取反后圖像的細(xì)節(jié)部分(分劃板上的刻度)得到增強(qiáng),圖片上的刻度和暗條紋都變成白色,這對后面的細(xì)化處理有利.實(shí)現(xiàn)圖像求反的Matlab語言為imcomplement.
圖1 干涉條紋原圖
圖2 求反后的灰度圖
圖像中噪聲比較多,特別是背景不均勻所造成的噪聲,必須加以抑制.濾波是平滑噪聲的主要技術(shù)手段之一,常見的濾波方法有中值濾波、高通濾波、巴特沃思頻域低通濾波[2]、旋濾波算法[3],一般采用平均值法和中值濾波法.均值和中值濾波都能比較好保持輪廓的清晰,但去除噪聲的效果欠佳,保留了用不到的叉絲(見圖3~4).這給后續(xù)圖像處理工作帶來不便.
圖3 均值濾波模板效果圖
圖4 中值濾波效果
為了能夠在去除噪聲的同時去除叉絲,而較好地保留刻度線.筆者采取形態(tài)濾波器[4-5]對求反后的灰度圖進(jìn)行數(shù)學(xué)形態(tài)學(xué)的形態(tài)濾波處理.數(shù)學(xué)形態(tài)學(xué)的基本思想就是使用具有一定形態(tài)的結(jié)構(gòu)元素來度量和提取圖像中的對應(yīng)形狀.因?yàn)殡p棱鏡干涉圖片中得到的干涉條紋和用于定標(biāo)用的刻度都是豎直方向的直線,而叉絲是45°和135°方向.為了消除圖像中的噪聲和圖像處理中用不上的叉絲,采用與水平方向成90°的線狀的結(jié)構(gòu)元素對圖像進(jìn)行腐蝕,去噪效果很好.在Matlab語言中實(shí)現(xiàn)腐蝕的語言為imerod.圖5是用不同大小的線型結(jié)構(gòu)元素對圖像進(jìn)行腐蝕的效果.在本實(shí)驗(yàn)中結(jié)構(gòu)元素大小為5時,平滑效果較好.
圖5 不同大小的線型結(jié)構(gòu)元素對圖像進(jìn)行腐蝕的效果
干涉條紋有一定的寬度,要做到條紋中心的精確定位,必須在圖像二值化后把干涉條紋細(xì)化為單像素的線條.考慮實(shí)驗(yàn)要求及本圖像具有干涉亮紋與背景灰度值差別顯著的特點(diǎn),且同種條紋的灰度變化比較大的情況,筆者采用了Otsu方法來計算二值化的閾值,Otsu方法是一種基于直方圖并利用最大化方差設(shè)定閾值的方法,在Matlab語言中可用graythresh函數(shù)求出此閾值.
用上述方法對干涉條紋圖二值化,出現(xiàn)信息丟失的現(xiàn)象(干涉條紋消失或者刻度線消失),如圖6(a)所示.經(jīng)分析發(fā)現(xiàn),造成這一現(xiàn)象的原因是雙棱鏡干涉中存在著直邊衍射,使得干涉條紋的亮度不一致.某一區(qū)域的干涉明紋看起來是亮的,但實(shí)際上它的灰度值和背景的灰度值幾乎是一樣的,以致在二值化時很難把它同背景區(qū)分.要想解決這一問題,就必須將干涉條紋和背景的對比度增大.因此筆者采用指定區(qū)域?yàn)V波的方法對圖像進(jìn)行處理,做法是先用Otsu方法來計算閾值,根據(jù)二值化效果,找出缺失干涉條紋的區(qū)域,然后再對該區(qū)域進(jìn)行區(qū)域?yàn)V波,增強(qiáng)該區(qū)域的對比度,最后再進(jìn)行二值化處理.在Matlab語言中可以用roipoly和roifilt2函數(shù)來實(shí)現(xiàn)區(qū)域?yàn)V波.實(shí)驗(yàn)表明,用區(qū)域?yàn)V波方法處理過的圖像,在二值化時能較好解決干涉條紋缺失的問題.當(dāng)然,這樣處理后,也會產(chǎn)生一些多出來的噪聲:該條紋旁邊出現(xiàn)毛刺現(xiàn)象.這些毛刺可以在細(xì)化通過形態(tài)學(xué)修剪的方法去除,對實(shí)驗(yàn)結(jié)果影響不大.
圖6 區(qū)域?yàn)V波前后對比圖
圖像二值化后,黑白條紋均占有一定的寬度.為了能從條紋中提取出條紋中心信息,必須對其進(jìn)行細(xì)化處理.條紋細(xì)化過程就是對具有一定寬度的條紋通過連續(xù)剝離條紋最外層元素以獲得單像素寬度的骨架的過程.細(xì)化不但去除一些二值化時產(chǎn)生的離散的噪聲點(diǎn),也是提高條紋位置坐標(biāo)的判讀精度關(guān)鍵的一步.二值圖像的細(xì)化處理有很多種算法,目前,國內(nèi)外已提出許多種的圖像細(xì)化算法,如Hilditch細(xì)化算法[6]、數(shù)學(xué)形態(tài)學(xué)細(xì)化算法[7]、導(dǎo)數(shù)二值圖細(xì)化算法[8]等.在許多文獻(xiàn)中,多采用Hilditch細(xì)化算法.筆者根據(jù)所處理干涉圖條紋的形狀、分布情況的不同,對經(jīng)過區(qū)域?yàn)V波后的干涉條紋二值圖采用二值數(shù)學(xué)形態(tài)學(xué)形態(tài)修剪處理和形態(tài)細(xì)化方法進(jìn)行處理.
干涉條紋圖樣細(xì)化后,就可以求取其間距Δx.但是干涉圖樣經(jīng)過目鏡、CMOS的成像,通過應(yīng)用軟件對圖樣進(jìn)行采樣,其采樣點(diǎn)的坐標(biāo)為像素.為了真實(shí)反映點(diǎn)與點(diǎn)間的長度,必須確定度量單位間的轉(zhuǎn)換關(guān)系,即定標(biāo).筆者是這樣處理:保留測微目鏡分劃板上的標(biāo)尺刻度,利用其相鄰兩刻度間的數(shù)值來定標(biāo).如果是其他不帶標(biāo)尺的儀器,可以用在同等條件下拍出的標(biāo)準(zhǔn)刻度(如游標(biāo)卡尺的刻度)來定標(biāo).
運(yùn)用Matlab語言進(jìn)行定標(biāo)的具體操作方法:
1)利用“imhow(xh)”命令顯示出細(xì)化后的干涉條紋圖(“xh”為細(xì)化圖的名稱).
2)用pixval命令來顯示覆蓋在圖像上的光標(biāo).即在命令行輸入“pixval”,此時將鼠標(biāo)移動到圖像上,鼠標(biāo)由箭頭形狀變成十字光標(biāo).將光標(biāo)在圖像上移動到某一刻度線(如3 mm刻度線),在該圖形窗口的下方會顯示出光標(biāo)所在的位置的亮度值為“1”時,按住鼠標(biāo)左鍵不放并拖動相鄰的刻度線(如4 mm刻度線),光標(biāo)所在的位置的亮度值也為“1”時,則窗口的下方顯示光標(biāo)初始位置和當(dāng)前位置的歐幾里德距離(如圖7所示),此距離就是1 mm寬度所對應(yīng)的歐幾里德距離.
圖7 細(xì)化結(jié)果及測量條紋間距的界面圖
3)定標(biāo).設(shè)1 mm寬度所對應(yīng)的歐幾里德距離為n,則比例系數(shù)k=1/n.
用pixval命令,采用上述方法再測量出干涉條紋寬度Δx(可測量多根干涉條紋,再求平均)對應(yīng)的歐幾里德距離為m,則Δx=m/n.兩虛光源的像間距d1和d2也是根據(jù)該公式計算.
圖像處理技術(shù)對雙棱鏡干涉條紋和虛光源像間距進(jìn)行細(xì)化處理前后得到的數(shù)據(jù),如表1~2所示.Er為平均相對誤差(與鈉光波長的公認(rèn)值589.3 nm作比較).由表中數(shù)據(jù)可以看出,相對于傳統(tǒng)測量方法,圖像處理后的精度有了較大的提高.
表1 圖像處理技術(shù)前的雙棱鏡干涉實(shí)驗(yàn)數(shù)據(jù)表
表2 圖像處理技術(shù)后的雙棱鏡干涉實(shí)驗(yàn)數(shù)據(jù)表
在雙棱鏡干涉實(shí)驗(yàn)采用圖像處理技術(shù)處理干涉條紋,可以實(shí)現(xiàn)干涉條紋中心的精確定位,無需旋轉(zhuǎn)測微目鏡的鼓輪來獲取數(shù)據(jù),從而避免引入回程誤差.具有重復(fù)性好,實(shí)驗(yàn)精度高的優(yōu)點(diǎn).Matlab語言作為第4代計算機(jī)語言,很多程序無須自己編寫,只需調(diào)用簡單的命令即可,應(yīng)用要比C語言、VC++等語言要簡單得多.如果學(xué)生沒有這方面的基礎(chǔ),也可以由比較熟悉這種語言的教師利用Matlab工具箱中的GUIDE工具制作出相應(yīng)的用戶界面,以方便學(xué)生使用.同時,這種方法還可以應(yīng)用于其他光學(xué)實(shí)驗(yàn),如牛頓環(huán)干涉實(shí)驗(yàn)、分光計折射率測定實(shí)驗(yàn)等,從而使傳統(tǒng)的光學(xué)實(shí)驗(yàn)更具有現(xiàn)代氣息.
[1] 廖立新,劉生長,米賢武.用雙棱鏡測激光波長的簡單方法[J].物理實(shí)驗(yàn),2007,27(7):34-35.
[2] 張愛珍,業(yè)寧.基于圖像模式識別技術(shù)的牛頓環(huán)檢測[J].物理實(shí)驗(yàn),2003,23(8):33-35.
[3] 陳瑞改,陳懷新.干涉條紋中心線提取與細(xì)化的新方法[J].激光雜志,2005,26(5):40-41.
[4] Shen Tongsheng,Liu Songtao,Zhou Xiaodong.Optimal design of morphological filters based on adaptive immunealgorithm[J].SignalProcessing,2004,(2):1 064-1 067.
[5] Jing Xiaojun,Ma Yixia,Qu En.Morphological filter based on genetic learning[J].Communications and Information Technology,2005,1(12-14):749-752.
[6] 崔鳳奎,王曉強(qiáng),張豐收.二值圖像細(xì)化算法的比較與改進(jìn)[J].洛陽工學(xué)院學(xué)報,1997,18(4):45-51.
[7] 施啟樂,王從軍,黃樹槐.數(shù)學(xué)形態(tài)學(xué)圖像細(xì)化算法在RE中的應(yīng)用研究[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2004,32(7):37-39.
[8] 于起峰.光測條紋圖處理中免除噪聲的正則化條紋法[J].實(shí)驗(yàn)力學(xué),1999,14(3):294-301.