測(cè)量顯微鏡是用于測(cè)量精密零件的長(zhǎng)度和角度的儀器,廣泛用于計(jì)量室,生產(chǎn)線及科學(xué)研究等部門(mén)。過(guò)去,測(cè)量顯微鏡一般由物鏡和測(cè)微目鏡組成,屬于目視儀器的范疇,測(cè)量結(jié)果容易受到人為因素的影響。在數(shù)字成像技術(shù)普及以后,測(cè)微目鏡被CCD相機(jī)取代,結(jié)合圖像分析和數(shù)據(jù)處理,不但實(shí)現(xiàn)了測(cè)量自動(dòng)化,而且提高了測(cè)量速度和精度。
測(cè)量原理
假設(shè)被測(cè)零件的長(zhǎng)度為y,經(jīng)物鏡成像后的長(zhǎng)度為y',物鏡的放大倍數(shù)為β,那么存在以下關(guān)系:
根據(jù)幾何光學(xué),物鏡放大倍數(shù)也可以表示為
其中f為物鏡物方焦距,f’為像方焦距,且有f’=-f。x為焦物距,即物鏡物方焦點(diǎn)到被測(cè)物體的距離。x’為焦像距,即物鏡像方焦點(diǎn)到像的距離。將(2)代入(1)得到
由(3)可知,當(dāng)物鏡焦距確定后,被測(cè)長(zhǎng)度值y取決于像的大小y’以及被測(cè)物體和CCD表面相對(duì)于物鏡的位置。如果后者由于某些原因出現(xiàn)偏差,比如CCD安裝位置誤差或調(diào)焦誤差(詳見(jiàn)下節(jié)),就會(huì)導(dǎo)致實(shí)際放大率偏離理論放大率,從而導(dǎo)致測(cè)量誤差,因?yàn)楸粶y(cè)物體的大小是根據(jù)公式(1)中的理論放大倍數(shù)計(jì)算出來(lái)的。所謂理論放大倍數(shù)是測(cè)量顯微物鏡的主要性能參數(shù)之一,通??淘谖镧R筒身上,比如1X,0.5X等字樣。
物方遠(yuǎn)心光路
為了保證被測(cè)物體清晰地成像在CCD表面,需要改變被測(cè)物體到測(cè)量顯微鏡之間的距離,直到得到清晰的像為止,這個(gè)過(guò)程稱為調(diào)焦。
調(diào)焦可以有手動(dòng)調(diào)焦和自動(dòng)調(diào)焦,但不管采用哪種方式都存在調(diào)焦誤差。見(jiàn)圖1,紅色實(shí)線表示正確的物像位置,藍(lán)色實(shí)線表示存在調(diào)焦誤差時(shí)的情形。對(duì)于普通顯微物鏡來(lái)說(shuō),藍(lán)色光束的主光線(通過(guò)孔徑光闌中心的光線,代表光束中心)的方向相對(duì)于紅色光束的主光線發(fā)生了改變,和CCD表面的交點(diǎn)由A’跑到了B’,也就是說(shuō)測(cè)得的像的大小發(fā)生了改變,實(shí)際放大率不等于理論放大率,從而造成了測(cè)量誤差。
圖1. 普通物鏡
采用物方遠(yuǎn)心光路能夠消除調(diào)焦誤差引起的測(cè)量誤差。見(jiàn)圖2,孔徑光闌放置在物鏡像方焦平面上,入瞳在物方無(wú)窮遠(yuǎn),物方主光線始終與光軸平行。無(wú)論被測(cè)物體位置如何改變,出射光束的主光線方向始終不變。即使存在調(diào)焦誤差,CCD上的像僅改變清晰度,而不改變大小。因此物方遠(yuǎn)心光路不產(chǎn)生放大率誤差引起的測(cè)量誤差。當(dāng)然,由于光闌外移,軸外像差變大,物鏡的結(jié)構(gòu)趨于復(fù)雜,價(jià)格遠(yuǎn)高于普通物鏡。
圖2. 物方遠(yuǎn)心光路
測(cè)量顯微鏡的校準(zhǔn)
雖然物方遠(yuǎn)心光路能夠消除調(diào)焦誤差帶來(lái)的測(cè)量誤差,但是CCD位置誤差仍然會(huì)引起測(cè)量誤差,因此測(cè)量顯微鏡使用之前必須經(jīng)過(guò)校準(zhǔn)。通常用直尺作為標(biāo),如圖3所示,首先測(cè)量出直尺像的某段長(zhǎng)度(比如從-5mm—5mm)所占據(jù)的CCD像素的個(gè)數(shù),乘以像素的大小,再除以物鏡的理論放大率,便得到了直尺的某段長(zhǎng)度的測(cè)量值。
該測(cè)量值應(yīng)該等于10mm,但是由于CCD位置誤差,測(cè)量值往往不等于10mm,比如可能是10.1mm。多余的0.1mm就是系統(tǒng)誤差,以后每次測(cè)量結(jié)果都要減去 0.1mm?;蛘哒{(diào)整CCD的位置后再次進(jìn)行校準(zhǔn),直到測(cè)量值等于或接近10mm。
圖3. 校準(zhǔn)分劃板,1“ X1”,格值100μm。
由于直尺的刻線有一定寬度,其像的寬度往往大于一個(gè)CCD像素,在確定兩條刻線之間的CCD像素的個(gè)數(shù)時(shí)往往受到人為因素的影響,從而造成偶然誤差。為此我們采用圖4所示的標(biāo)準(zhǔn)圖案來(lái)代替直尺進(jìn)行校準(zhǔn),其優(yōu)點(diǎn)是借助MATLAB圖像處理工具包自動(dòng)識(shí)別圖形并計(jì)算出圖案的大小,避免了人為因素的影響。已知標(biāo)準(zhǔn)圖案為4x4mm的黑白正方形,測(cè)量使用的是Edmund 0.9X CobaltTL 遠(yuǎn)心鏡頭(產(chǎn)品號(hào) 62901),記錄使用的是AVT CCD的相機(jī),像素大小為5.5x5.5μm,測(cè)試過(guò)程的細(xì)節(jié)參考視頻1:
視頻1測(cè)試細(xì)節(jié)
使用視頻1的系統(tǒng)的相機(jī)拍攝的圖像如圖5所示。然后對(duì)圖5進(jìn)行計(jì)算機(jī)圖像處理,用MATLAB編寫(xiě)的程序代碼見(jiàn)附錄。程序第一段是讀入圖像并顯示。第二段是將灰度圖像轉(zhuǎn)換成如圖6所示的二值(黑白)圖像。第三段第一行的函數(shù)regionprops() 對(duì)每個(gè)白色區(qū)域的面積,重心和邊界框進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果見(jiàn)圖7。其中面積以像素的個(gè)數(shù)來(lái)表示,重心以x,y坐標(biāo)表示,邊界框用4個(gè)數(shù)值表示,第一,二個(gè)數(shù)值是矩形左上角的x,y坐標(biāo),第三,四個(gè)數(shù)值分別是矩形的寬度和高度,以像素的個(gè)數(shù)表示。
然后給每個(gè)白色區(qū)域打上標(biāo)簽,如圖8所示,可見(jiàn)一共有10個(gè)白色區(qū)域。容易看出只有4,5,7三個(gè)矩形是完整的,因此第四段第一句是篩選出這三個(gè)矩形,其余矩形不予考慮。第二句是提取這三個(gè)矩形的邊界框的數(shù)據(jù),并將它們寫(xiě)入二維數(shù)組BoundingBoxes。從圖7可以看出,第4,5,7三個(gè)矩形的寬度和高度均等于660個(gè)像素。最后一句是計(jì)算3個(gè)正方形邊長(zhǎng)的平均值,為660個(gè)像素,乘以CCD像素大小0.0055mm,再除以理論放大率0.9,得到正方形邊長(zhǎng)的測(cè)量值為4.033mm,比標(biāo)準(zhǔn)值大了0.033mm。在以后的測(cè)量中,需要將測(cè)量值減去0.033mm。
圖4. 標(biāo)準(zhǔn)圖案
圖5. 標(biāo)準(zhǔn)圖案的原始圖像
圖6. 二值圖像
圖7. 10個(gè)白色區(qū)域的面積,重心,邊界框數(shù)據(jù)列表
圖8. 打了標(biāo)簽的原圖
結(jié)語(yǔ)
本文介紹了測(cè)量顯微鏡的工作原理及測(cè)量誤差的主要來(lái)源─放大率誤差,而放大率誤差主要來(lái)自于調(diào)焦誤差和CCD表面相對(duì)于物鏡的位置誤差。采用物方遠(yuǎn)心光路,即將孔徑光闌置于物鏡像方焦平面上能夠有效地消除調(diào)焦誤差導(dǎo)致的測(cè)量誤差。用直尺或標(biāo)準(zhǔn)圖案進(jìn)行放大率校準(zhǔn)則能夠測(cè)出實(shí)際放大率和理論放大率之間的偏差,用以補(bǔ)償CCD位置誤差造成的測(cè)量誤差。本文介紹了如何用標(biāo)準(zhǔn)圖案和MATLAB強(qiáng)大的圖像處理工具包測(cè)量實(shí)際放大率,并分享了程序代碼。
附錄:MATLAB圖像處理程序代碼
beta = 0.9; % magnification
px = 0.0055; % CCD pixel size (mm)
I=imread('checkerboard.bmp','bmp');
figure(1)
imshow(I)
bw = imbinarize(I,0.3);
figure(2)
imshow(bw)
title('Binary image')
stats = regionprops('table',bw,'Area','Centroid','BoundingBox')
n = size(stats,1);
centroids = cat(1,stats.Centroid);
position = round(centroids);
RGB = insertText(I,position,1:n,'FontSize',50,'AnchorPoint','Center');
figure(3)
imshow(RGB)
title('Labelled image')
% filter out smaller boxes
idx = find([stats.Area] > 400000);
% extract the data for the square boxes
boundingBoxes = cat(1,stats(idx,:).BoundingBox);
% calculate the size of the square boxes
mean(mean(boundingBoxes(:,3:4)))*px/beta
審核編輯:劉清
-
CCD
+關(guān)注
關(guān)注
32文章
884瀏覽量
142438 -
圖像處理器
+關(guān)注
關(guān)注
1文章
104瀏覽量
15533 -
顯微鏡
+關(guān)注
關(guān)注
0文章
575瀏覽量
23095 -
MATLAB仿真
+關(guān)注
關(guān)注
4文章
176瀏覽量
19962 -
CCD相機(jī)
+關(guān)注
關(guān)注
0文章
23瀏覽量
10058
原文標(biāo)題:數(shù)字成像測(cè)量顯微鏡的放大率誤差及校準(zhǔn)
文章出處:【微信號(hào):bdtdsj,微信公眾號(hào):中科院半導(dǎo)體所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論