林 睿
(1.重慶工商大學(xué) 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,重慶 400067;2.重慶市檢測(cè)控制集成系統(tǒng)工程實(shí)驗(yàn)室,重慶 400067)
在傳統(tǒng)的激光單縫衍射實(shí)驗(yàn)[1-4]的過程中,學(xué)生需要不斷調(diào)節(jié)光敏探頭的位置,對(duì)單縫衍射圖樣的光強(qiáng)逐點(diǎn)進(jìn)行采樣測(cè)量,這種測(cè)量的采樣通常是步進(jìn)等距采樣,在此基礎(chǔ)上還要記錄數(shù)據(jù),繪制曲線圖。采樣間距越小,學(xué)生需要花費(fèi)的測(cè)量時(shí)間就越多,而為了減少測(cè)量時(shí)間,采樣的步進(jìn)距離通常較大。如:以0.5 mm為一個(gè)點(diǎn)的步進(jìn)距離(測(cè)量位置坐標(biāo)的螺旋測(cè)微器鼓輪轉(zhuǎn)一圈或半圈),這樣會(huì)造成衍射光強(qiáng)極小值位置測(cè)量的不確定度大于0.1 mm。
隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,已經(jīng)有不少光學(xué)實(shí)驗(yàn)實(shí)現(xiàn)了智能測(cè)量。有的利用單片機(jī)控制步進(jìn)電機(jī),帶動(dòng)光敏探頭進(jìn)行測(cè)量,系統(tǒng)采集數(shù)據(jù),自動(dòng)化處理,在計(jì)算機(jī)上顯示實(shí)驗(yàn)結(jié)果[5-7];也有利用CCD直接測(cè)量光強(qiáng)分布[7,8],實(shí)現(xiàn)數(shù)據(jù)自動(dòng)采集和結(jié)果處理,但CCD需要專門的計(jì)算機(jī)采集卡或采集接口。上述的兩種測(cè)量方法的實(shí)驗(yàn)成本較高,只有少數(shù)高校能夠開展相關(guān)的實(shí)驗(yàn)。
在數(shù)字圖像處理技術(shù)[9]的基礎(chǔ)上,提出并開發(fā)了一種成本低廉適合各類高校開展的單縫衍射實(shí)驗(yàn)的光電圖像測(cè)量系統(tǒng)。該系統(tǒng)采用廉價(jià)攝像頭,以C#開發(fā)平臺(tái)Visual Studio 2010進(jìn)行圖像采集和處理軟件的開發(fā)[10],完成拍攝單縫衍射光強(qiáng)分布圖像、衍射光強(qiáng)第一極小值位置搜索和圖像像素尺寸定標(biāo)等功能,在此基礎(chǔ)上完成的單縫衍射實(shí)驗(yàn)既克服傳統(tǒng)單縫衍射實(shí)驗(yàn)精度低、費(fèi)時(shí)長(zhǎng)的缺點(diǎn),又能在低廉成本的基礎(chǔ)上實(shí)現(xiàn)單縫衍射實(shí)驗(yàn)的數(shù)字化、可視化和現(xiàn)代化。
本文提出的光電圖像測(cè)量系統(tǒng)主要由硬件系統(tǒng)(攝像頭和USB接口)以及軟件系統(tǒng)構(gòu)成。攝像頭采用普通的帶有USB接口的通用攝像頭構(gòu)成,該攝像頭的圖像采集部件是分辨率為1 080×720像素?cái)?shù)的CMOS芯片。軟件系統(tǒng)包含5個(gè)軟件模塊,分別是微軟自帶的攝像頭驅(qū)動(dòng)軟件包avicap32.dll,基于C#的USB攝像頭操作軟件模塊、衍射圖像定位模塊、衍射第一極小值搜索算法模塊、攝像頭像素尺寸定標(biāo)模塊。微軟自帶的攝像頭驅(qū)動(dòng)軟件模塊是已經(jīng)封裝好的成熟的軟件模塊,提供了相應(yīng)函數(shù)的調(diào)用接口;基于C#的USB攝像頭操作軟件模塊在文獻(xiàn)[10]中已有很好的實(shí)現(xiàn)例子,因此本文構(gòu)建光電圖像測(cè)量軟件系統(tǒng)時(shí)主要研究其他3個(gè)軟件模塊的實(shí)現(xiàn)。
為了便于圖像采集后能迅速搜索到衍射第一極小值位置以及減小測(cè)量誤差,單縫衍射的光強(qiáng)分布必須以攝像頭采集圖像的基線為準(zhǔn),即衍射方向應(yīng)該與攝像頭采集圖像的橫坐標(biāo)方向一致。為此,在圖像采集窗口上構(gòu)建了一組用于衍射圖像定位的標(biāo)線(如圖1(a)所示),并通過鼠標(biāo)屏幕取坐標(biāo)的方式實(shí)現(xiàn)采集圖像上兩個(gè)像素點(diǎn)的像素間距的測(cè)量。在采集衍射圖像前,打開攝像頭,依據(jù)圖像采集窗口上的定位標(biāo)線調(diào)節(jié)單縫的方向和位置,使圖像采集窗口上顯示的衍射圖像在水平方向上與定位標(biāo)線的中央水平線平行。利用定位模塊中鼠標(biāo)取坐標(biāo)值測(cè)量像素間距的功能,逐漸精細(xì)調(diào)節(jié)狹縫的方向和位置,使得衍射圖樣分別對(duì)中央水平標(biāo)線和中央豎直標(biāo)線大致成對(duì)稱分布。最后在暗室的環(huán)境下獲得衍射圖像的定位結(jié)果,如圖1(b)所示。
(a)衍射圖像定位標(biāo)線 (b)衍射圖像定位結(jié)果
目前,多數(shù)高校開設(shè)的單縫衍射實(shí)驗(yàn)需要測(cè)量出衍射光強(qiáng)的兩個(gè)第一極小值間距及衍射距離來測(cè)量縫寬。本文采用光電圖像測(cè)量技術(shù)實(shí)現(xiàn)衍射光強(qiáng)的兩個(gè)第一極小值間距的測(cè)量,其測(cè)量過程是:在暗室環(huán)境中的計(jì)算機(jī)上顯示的采集窗口獲得調(diào)整好定位的狹縫衍射圖像后(如圖1(b)),對(duì)衍射圖像進(jìn)行采集,保存到計(jì)算機(jī)中,然后利用數(shù)字圖像處理的方法計(jì)算出兩個(gè)衍射第一極小值的像素間距。這就必須依靠本文所提出的衍射第一極小值的搜索算法。
圖1(b)的衍射光強(qiáng)第一極小值的搜索算法的基本思想是:將采集到的衍射圖像的強(qiáng)度投影到圖像的水平軸上形成一維分布的數(shù)據(jù)(這是因?yàn)榘凳噎h(huán)境下衍射光強(qiáng)在水平方向上的分布與采集到的圖像的灰度在水平方向上投影的分布情況相同,采用軟件對(duì)數(shù)據(jù)可視化后如圖2所示),利用極小值判斷方法(即:極值點(diǎn)的左右相鄰點(diǎn)強(qiáng)度與極值點(diǎn)強(qiáng)度的差都大于0),采用一個(gè)長(zhǎng)度為奇數(shù)的游動(dòng)窗口從上述一維數(shù)據(jù)序列的中央分別向兩邊搜索第一極小值,其中游動(dòng)窗口的中心為序列中的待考察數(shù)據(jù)點(diǎn)。當(dāng)游動(dòng)窗口范圍內(nèi)的其他數(shù)據(jù)點(diǎn)強(qiáng)度與待考察數(shù)據(jù)點(diǎn)強(qiáng)度的差都大于0時(shí),該考察點(diǎn)即為極小值,其水平像素坐標(biāo)為極小值像素坐標(biāo)。當(dāng)取得兩個(gè)極小值的位置后,將位置相減即可得兩個(gè)第一極小值間的像素個(gè)數(shù)。
圖2 衍射光強(qiáng)圖像水平投影的數(shù)據(jù)可視化Fig.2 Data visualization for horizontal projection of diffraction intensity image
相應(yīng)的算法流程如圖3所示。圖3中I(x)表示將圖像投影到水平軸上所獲得的一維強(qiáng)度序列,x是離散化的圖像的水平坐標(biāo),xc為一維序列I(x)中心所對(duì)應(yīng)的水平坐標(biāo)位置;所采用的游動(dòng)窗口長(zhǎng)度為L(zhǎng)=2k+1,為了既能準(zhǔn)確有效地檢測(cè)出極小值位置又能實(shí)現(xiàn)快速計(jì)算,通??梢允?≤k≤10,本文中選擇k=7;算法從序列中心分別向兩邊采用游動(dòng)窗口搜索第一極小值,x1和x2分別為兩個(gè)游動(dòng)窗口的中心,算法分別計(jì)算兩個(gè)窗口中對(duì)應(yīng)的一維序列I(x)中的其他數(shù)據(jù)與I(x1)和I(x2)的差值Δ1和Δ2,當(dāng)Δ1(Δ2)小于0時(shí),標(biāo)記D1(D2)為0,當(dāng)Δ1(Δ2)大于或等于0時(shí),標(biāo)記D1(D2)為1;F1和F2是用于判斷檢測(cè)位置為極小值位置的標(biāo)記,在依次遍歷游動(dòng)窗口對(duì)應(yīng)的一維數(shù)據(jù)I(x)的計(jì)算過程中,通過迭代乘法運(yùn)算F1=F1×D1和F2=F2×D2來實(shí)現(xiàn)極小值判斷,即:如果遍歷窗口數(shù)據(jù)后F1(F2)大于0則窗口中心數(shù)據(jù)為極小值,否則修改窗口中心位置再繼續(xù)重復(fù)上述步驟進(jìn)行搜索。當(dāng)搜索到兩個(gè)極小值位置x1和x2后搜索終止,兩個(gè)極小值的像素間距即為Δx=|x1-x2|。
圖3 衍射第一極小值搜索算法流程圖Fig.3 Algorithm flow chart for searching the first minimum of the single slit diffraction
為了測(cè)量出兩個(gè)極小值的空間間距,必須對(duì)像素的尺寸進(jìn)行測(cè)量標(biāo)定。其方法是:拍攝清晰的刻度尺圖像,使拍攝刻度尺圖像和拍攝衍射圖像的相機(jī)保持成像距離和焦距不變,測(cè)量一定長(zhǎng)度的刻度尺的像素?cái)?shù),從而對(duì)像素的尺寸進(jìn)行標(biāo)定。而為了準(zhǔn)確地對(duì)像素尺寸進(jìn)行標(biāo)定,必須對(duì)刻度尺進(jìn)行定位,使得刻度尺的水平刻度線和豎直刻度線分別與圖像的橫坐標(biāo)軸和縱坐標(biāo)軸平行。因此,在像素尺寸標(biāo)定模塊中包含有刻度尺定位子模塊。此外,像素尺寸標(biāo)定模塊中還包含有刻度尺圖像像素標(biāo)定算法子模塊??潭瘸叨ㄎ荒K的實(shí)現(xiàn)如圖4所示。圖中的方框?yàn)槌绦蛩L制的刻度尺定位標(biāo)線。在保持?jǐn)z像頭的成像清晰的情況下,調(diào)整夾持?jǐn)z像頭的二維調(diào)節(jié)架使刻度尺的豎直刻度線和水平刻度線分別與定位標(biāo)線的豎直線和水平線相互平行。在刻度尺的位置調(diào)整到了圖4所示的結(jié)果后,采集刻度尺圖像,應(yīng)用刻度尺圖像像素標(biāo)定算法實(shí)現(xiàn)像素尺寸的定標(biāo)。算法的基本實(shí)現(xiàn)過程如下:
Step1 將采集到的刻度尺的圖像進(jìn)行灰度化,并依據(jù)其灰度分布特點(diǎn)采用平均灰度值為閾值對(duì)圖像進(jìn)行二值化操作(如圖5(a));
Step2 應(yīng)用Sobel算子對(duì)二值化后的圖像進(jìn)行邊緣檢測(cè),生成包含有刻度線邊緣直線的圖像(如圖5(b));
Step3 依據(jù)定位標(biāo)線所在的圖像位置對(duì)邊緣直線進(jìn)行統(tǒng)計(jì)(如圖5(c)),從左至右標(biāo)記序數(shù)為奇數(shù)的邊緣直線的像素水平坐標(biāo)位置;
Step4 計(jì)算出相鄰奇數(shù)邊緣的像素間距Δn,并依據(jù)定位標(biāo)線所處的刻度線位置(中央水平線下方第一條短的水平標(biāo)線)的相鄰刻度線間距l(xiāng)(本次測(cè)量中l(wèi)=20 mm)可計(jì)算得到所檢測(cè)到的每相鄰兩個(gè)刻度線之間的像素尺寸。
Step5 對(duì)所有根據(jù)相鄰刻度線計(jì)算出的像素尺寸進(jìn)行平均,即可得到定標(biāo)的像素尺寸。
圖4 刻度尺定位模塊Fig.4 Location module of the graduation ruler
(a)刻度尺圖像二值化
(b)邊緣檢測(cè) (c)定位標(biāo)線處邊緣的統(tǒng)計(jì)
圖5 像素尺寸標(biāo)定過程
Fig.5 Process of pixel size calibration
本文提出的實(shí)現(xiàn)單縫衍射圖樣的光強(qiáng)分布測(cè)量的光電圖像測(cè)量系統(tǒng)如圖6所示。He-Ne激光器S發(fā)射激光經(jīng)過寬度為a的狹縫Slit在成像屏P上形成衍射圖像,狹縫附帶一個(gè)螺旋測(cè)微器(0.01 mm精度),其寬度可由螺旋測(cè)微器進(jìn)行調(diào)節(jié),并能由螺旋測(cè)微器直接測(cè)量出狹縫的寬度,狹縫的方向可以調(diào)節(jié);成像屏P采用厚1 mm的白色PMMA材料制成,屏上形成的衍射圖像可以透過部分衍射光,由于成像屏采用干板夾進(jìn)行夾持,因而在成像屏的相同位置也可換作夾持刻度尺。用于采集透過成像屏P上的衍射光所形成圖像的通用攝像頭被持在二維傾角調(diào)節(jié)架(俯仰角和水平角)上,此二維傾角調(diào)節(jié)架支撐在一個(gè)三維調(diào)節(jié)(水平二維調(diào)節(jié)和豎直調(diào)節(jié))的底座上。P1、P2為偏振片,用于調(diào)節(jié)入射到狹縫的激光光強(qiáng),以使成像屏上形成的衍射圖像的光強(qiáng)適合攝像頭采集圖像的強(qiáng)度;計(jì)算機(jī)處理攝像頭所拍攝的圖像。攝像頭在暗室情況下拍攝光強(qiáng)合適的衍射圖像,在計(jì)算機(jī)上對(duì)圖像進(jìn)行灰度處理。
圖6 單縫衍射實(shí)驗(yàn)光電圖像測(cè)量系統(tǒng)示意圖Fig.6 Diagram of photoelectric image measurement system for diffraction experiment
依據(jù)圖6構(gòu)建了實(shí)驗(yàn)系統(tǒng),在該系統(tǒng)上需要依照如下的步驟完成單縫衍射實(shí)驗(yàn):
Step1 調(diào)節(jié)光路。首先調(diào)節(jié)He-Ne激光器出射的激光束等高,然后再調(diào)節(jié)各個(gè)器件等高共軸,軸線為He-Ne激光束所在位置。
Step2 打開激光,調(diào)節(jié)狹縫的寬度和角度,并調(diào)節(jié)攝像頭與光屏的相對(duì)位置,使狹縫的衍射圖樣清晰且對(duì)稱地分布在定位標(biāo)線所標(biāo)定的區(qū)域。
Step3 旋轉(zhuǎn)偏振片使光屏上的衍射光斑消失,然后將光屏換為刻度尺,調(diào)節(jié)攝像頭傾角和位置,使攝像頭能采集到清晰且與刻度尺定位標(biāo)線能對(duì)齊的刻度尺的圖像。
Step4 固定夾持刻度尺的干板夾和攝像頭的位置,拍攝刻度尺圖像10幅。
Step5 將刻度尺換成成像光屏,旋轉(zhuǎn)偏振片使攝像頭采集到的衍射圖像的強(qiáng)度適中,調(diào)節(jié)狹縫方向使衍射圖樣對(duì)稱地分布在定位標(biāo)線所標(biāo)定的區(qū)域。
Step6 拍攝單縫衍射圖像10幅。
Step7 單縫到衍射屏的距離D用毫米刻度尺測(cè)量10次。
Step8 從單縫自帶的螺旋測(cè)微器上讀出狹縫的寬度a0。
上述步驟中,Step1和Step2可確保在相機(jī)視場(chǎng)的有效范圍內(nèi)能拍攝到包含了衍射1級(jí)的衍射圖像;Step3—Step5能確保拍攝到的衍射圖像清晰,并能使刻度尺的圖像與衍射圖像有相同的拍攝焦距和成像距離。
完成上述測(cè)量步驟后,利用提出的算法所編制的軟件計(jì)算出兩個(gè)衍射強(qiáng)度第一極小的像素間距Δx和l=20 mm的刻度尺的像素間距Δn,則單縫衍射的兩個(gè)第一極小值實(shí)際間距為
(1)
依據(jù)衍射理論,由兩個(gè)單縫衍射強(qiáng)度第一極小間距d和衍射距離D,計(jì)算待測(cè)單縫寬度a為
(2)
則由式(1)和式(2)可得:
(3)
依據(jù)構(gòu)建的光電圖像測(cè)量系統(tǒng)和相應(yīng)的實(shí)驗(yàn)步驟,完成單縫衍射實(shí)驗(yàn)的測(cè)量,其中由螺旋測(cè)微器讀出狹縫寬度a0=0.160 mm,而He-Ne激光的標(biāo)稱波長(zhǎng)為=632.8 nm;并且分別采集到了10幅衍射圖像和10幅用于像素尺寸定標(biāo)的刻度尺圖像,利用提出的算法計(jì)算出10組Δx和Δn,其結(jié)果如圖7(a)和圖7(b)所示,10次測(cè)量的衍射距離D如圖7(c)所示,圖7中可視化的數(shù)據(jù)圖中虛橫線為測(cè)量數(shù)據(jù)的均值線。
(a) 兩個(gè)衍射強(qiáng)度第一極小的像素間距Δx
(b) l =20 mm長(zhǎng)度的刻度尺的像素間距Δn
(c) 單縫衍射距離D
圖7(a)表明利用光電圖像測(cè)量系統(tǒng)測(cè)量出的單縫衍射兩個(gè)第一極小值像素間距具有不規(guī)律起伏,這種起伏的主要原因是激光器的功率不穩(wěn)定造成的出射光強(qiáng)的隨機(jī)變化從而引起了探測(cè)到的兩個(gè)第一極小值的位置變化,通過拍攝多幅衍射圖像進(jìn)行平均可以減小光強(qiáng)的隨機(jī)起伏對(duì)測(cè)量的影響。而在通常測(cè)量耗時(shí)長(zhǎng)的單縫衍射實(shí)驗(yàn)中要減小這種由于光強(qiáng)隨機(jī)起伏對(duì)測(cè)量誤差的影響是很難實(shí)現(xiàn)的。圖7(b)顯示出本文提出的像素尺寸標(biāo)定的算法是穩(wěn)定的。采用毫米刻度尺測(cè)量衍射距離時(shí)由于刻度線對(duì)準(zhǔn)誤差和估讀造成了圖7(c)的隨機(jī)起伏。上述測(cè)量項(xiàng)目的均值和標(biāo)準(zhǔn)差如表1所示。
表 1 測(cè)量項(xiàng)目的統(tǒng)計(jì)結(jié)果
依據(jù)表1和式(3)可以計(jì)算得到單縫的縫寬均值為a=0.164 mm,與螺旋測(cè)微器測(cè)出的狹縫寬度的相對(duì)誤差為2.5。
利用上述數(shù)據(jù)可以有效地評(píng)估本文所提出方法的測(cè)量不確定度(這里僅討論統(tǒng)計(jì)不確定度)。根據(jù)誤差傳遞理論,按照式(3)測(cè)量的狹縫寬度a的相對(duì)不確定度可以計(jì)算如下:
(4)
其中,a、D、Δx和Δn都采用均值,為標(biāo)準(zhǔn)差。依據(jù)表1,可以計(jì)算得到狹縫寬度a的相對(duì)不確定度為5.271×10-3。
上述結(jié)果表明,本文所提出的采用光電圖像測(cè)量技術(shù)改進(jìn)的單縫衍射實(shí)驗(yàn)具有較高的測(cè)量精度。而傳統(tǒng)的單縫衍射實(shí)驗(yàn)則不可能在較少的實(shí)驗(yàn)課時(shí)中完成上述測(cè)量不確定度的估計(jì)。
提出了采用光電圖像測(cè)量技術(shù)與傳統(tǒng)光學(xué)實(shí)驗(yàn)相結(jié)合并在短時(shí)間內(nèi)完成高精度的單縫衍射實(shí)驗(yàn)相關(guān)參數(shù)的測(cè)量方法,改進(jìn)了傳統(tǒng)光學(xué)實(shí)驗(yàn)的測(cè)量過程。依據(jù)該方法完成了單縫衍射實(shí)驗(yàn),實(shí)驗(yàn)測(cè)量出單縫寬度的相對(duì)誤差為2.5%,其測(cè)量的相對(duì)不確定為5.271×10-3。與相對(duì)誤差為30%[3]的傳統(tǒng)光學(xué)實(shí)驗(yàn)的測(cè)量相比較,采用本文提出的測(cè)量方法能使測(cè)量值更準(zhǔn)確,并且減少了數(shù)據(jù)的采集和處理所耗費(fèi)的實(shí)驗(yàn)時(shí)間,提高了實(shí)驗(yàn)效率和測(cè)量的精度。因此,采用本文所提出的實(shí)驗(yàn)測(cè)量方法實(shí)現(xiàn)了迅速、有效且高精度的測(cè)量,為實(shí)現(xiàn)傳統(tǒng)物理實(shí)驗(yàn)的數(shù)字化提供了良好的思路和基礎(chǔ),預(yù)期可以在光學(xué)實(shí)驗(yàn)中推廣使用。