基於單縫衍射原理利用CCD測量微小位移的方法與流程
2023-09-16 23:28:20 1
本發明涉及測距領域,具體涉及一種利用ccd圖像處理進行測量微小位移的方法。
背景技術:
現階段,國內外微小位移測量技術的發展,測量距離變得越來越小,所以微小位移的測量變得越來越重要。測量微小位移的工具也變得智能化、自動化,測量的精度很高,測量的動態範圍也向較廣的領域發展,測量的維度也在變化,從一維向二維到多維度的測量領域發展。近些年來,產生了很多測量微小位移的方法,如光學、電磁學、機械力學等諸多方法,但是大致可以分為兩大類,一類是非光學的方法,一類是光學的方法。非光學的方法有:基於線性可調的差動變壓器測量、數字圖像處理測量、電磁發射技術測量、電渦流位移傳感器測量、磁場測量技術、顯微鏡檢測技術、千分表與百分表測量法、傳感器測量法等等。光學的測量方法也有許多,包括雷射掃描位移的測量,光柵條紋位移測量、光槓桿法、光的幹射法、光的衍射法、紅外技術位移測量、光學圖像位移等等。傳統的位移測量方法無論是非光學法或是光學法均存在測量精度不高或者測量操作複雜的弊端。
技術實現要素:
本發明為了克服以上技術的不足,提供了一種操作簡單、實現自動化測量且測量精度高的基於單縫衍射原理利用ccd測量微小位移的方法。
本發明克服其技術問題所採用的技術方案是:
一種基於單縫衍射原理利用ccd測量微小位移的方法,包括如下步驟:
a)兩個波長相同的雷射光源,兩個光源的光路相平行,其中一雷射光源射出的光線穿過定標狹縫後產生琅禾費衍射,另一雷射光源射出的光線穿過可變狹縫後產生琅禾費衍射,兩個衍射後的光路穿過凸透鏡後聚焦在凸透鏡的後焦平面上形成兩幅衍射圖像,移動物體的位移時可變狹縫的縫隙寬度隨之改變;
b)在移動物體發生微小位移前,ccd相機將兩幅衍射圖像記錄並轉化為數字信息保存至計算機;
c)利用matlab讀取兩幅衍射圖像,使用rgb2gray函數命令對讀取到的圖像進行灰度值轉換;
d)利用巴特沃斯低通濾波器對轉換為灰度值的圖像進行傳遞函數處理,使其圖像平滑濾波;
e)將兩幅平滑濾波後的圖像通過傅立葉變換轉變為條紋圖像;
f)利用matlab計算由定標狹縫產生的衍射的條紋圖像的主極大寬度δx定,利用matlab計算由可變狹縫產生的衍射的條紋圖像的主極大寬度δx變;
g)通過公式計算可變狹縫的寬度a變,其中式中f為凸透鏡的焦距,λ為雷射光源的波長;
h)在移動物體發生微小位移後,可變狹縫的寬度改變,ccd相機將位移後的兩幅衍射圖像記錄並轉化為數字信息保存至計算機;
i)利用matlab讀取兩幅衍射圖像,使用rgb2gray函數命令對讀取到的圖像進行灰度值轉換;
g)利用巴特沃斯低通濾波器對轉換為灰度值的圖像進行傳遞函數處理,使其圖像平滑濾波;
k)將兩幅平滑濾波後的圖像通過傅立葉變換轉變為條紋圖像;
l)利用matlab計算由定標狹縫產生的衍射的條紋圖像的主極大寬度δx定,利用matlab計算由位移後的可變狹縫產生的衍射的條紋圖像的主極大寬度δx變′;
m)通過公式計算為以後的可變狹縫的寬度a變′
n)通過|a變-a變『|計算移動物體的位移量。
上述雷射光源採用650nm的紅光光源。
步驟f)中主極大寬度δx定的計算方法為:
f-1.1)利用matlab軟體提取步驟d)中由定標狹縫產生的衍射的條紋圖像的灰度值矩陣,提取灰度值矩陣中每一列數組中灰度值的最大值,各個灰度值的最大值構成單縫夫琅禾費衍射光強分布圖;
f-1.2)利用matlab軟體尋找單縫夫琅禾費衍射光強分布圖中所有極小值的地址,灰度值極小值定義為暗條紋的地址;
f-1.3)利用matlab軟體尋找單縫夫琅禾費衍射光強分布圖中光強最大值的地址,光強最大值的地址定義為主極大中心的地址;
f-1.4)利用matlab軟體尋找大於主極大中心的所有暗條紋地址中最小的一暗條紋,該暗條紋的地址定義為正一極暗條紋中心的地址;
f-1.5)利用matlab軟體尋找大於主極大中心的所有暗條紋地址中最大的一暗條紋,該暗條紋的地址定義為負一極暗條紋中心的地址;
f-1.6)計算正一極暗條紋中心的地址與為負一極暗條紋中心的地址之間的間距,該間距為主極大寬度δx定。
步驟f)中主極大寬度δx變的計算方法為:
f-2.1)利用matlab軟體提取步驟d)中由可變狹縫產生的衍射的條紋圖像的灰度值矩陣,提取灰度值矩陣中每一列數組中灰度值的最大值,各個灰度值的最大值構成單縫夫琅禾費衍射光強分布圖;
f-2.2)利用matlab軟體尋找單縫夫琅禾費衍射光強分布圖中所有極小值的地址,灰度值極小值定義為暗條紋的地址;
f-2.3)利用matlab軟體尋找單縫夫琅禾費衍射光強分布圖中光強最大值的地址,光強最大值的地址定義為主極大中心的地址;
f-2.4)利用matlab軟體尋找大於主極大中心的所有暗條紋地址中最小的一暗條紋,該暗條紋的地址定義為正一極暗條紋中心的地址;
f-2.5)利用matlab軟體尋找大於主極大中心的所有暗條紋地址中最大的一暗條紋,該暗條紋的地址定義為負一極暗條紋中心的地址;
f-2.6)計算正一極暗條紋中心的地址與為負一極暗條紋中心的地址之間的間距,該間距為主極大寬度δx變。
本發明的有益效果是:傳統的微小位移的測量方法相比較,具有非常明顯的優勢。在物理設計的角度上,利用高解析度的ccd設備和matlab軟體,利用圖像的灰度值來計算物體的微小位移,具有較高的創新性和突破性。在測量方式上擁有以下優點:
(1)方便操作:實驗裝置簡易,操作步驟簡單,人為幹預比較少。
(2)自動化測量:本實驗基於ccd採集系統和matlab圖像處理系統進行測量,基本沒有人為操作,完全實現自動化測量。
(3)結構獨特:對比狹縫衍射系統是一種自主設計的衍射系統,結構新穎,測量精度高。
(4)測量方式簡單。
(5)誤差小:由於應用對比狹縫衍射,在圖像對比處理時,把無關的參數和儀器誤差約去,去除參數不準確和儀器變動帶來的影響。
此方法基於matlab光學圖像處理技術,並應用計算機計算實驗數據,能夠實現自動化,智能化的測量,所以此方法擁有很多無法比擬的優勢。尤其是基於單縫衍射的對比狹縫的衍射系統、高解析度ccd相機的圖像採集和基於matlab的光學圖像處理技術方法,是此項課題研究最主要的幾大亮點,因此在測量中可以實現自動化、智能化、高精度的測量微小位移。
具體實施方式
下面對本發明做進一步說明。
一種基於單縫衍射原理利用ccd測量微小位移的方法,包括如下步驟:
a)兩個波長相同的雷射光源,兩個光源的光路相平行,其中一雷射光源射出的光線穿過定標狹縫後產生琅禾費衍射,另一雷射光源射出的光線穿過可變狹縫後產生琅禾費衍射,兩個衍射後的光路穿過凸透鏡後聚焦在凸透鏡的後焦平面上形成兩幅衍射圖像,移動物體的位移時可變狹縫的縫隙寬度隨之改變;
b)在移動物體發生微小位移前,ccd相機將兩幅衍射圖像記錄並轉化為數字信息保存至計算機;
c)利用matlab讀取兩幅衍射圖像,使用rgb2gray函數命令對讀取到的圖像進行灰度值轉換;
d)利用巴特沃斯低通濾波器對轉換為灰度值的圖像進行傳遞函數處理,使其圖像平滑濾波;
e)將兩幅平滑濾波後的圖像通過傅立葉變換轉變為條紋圖像;
f)利用matlab計算由定標狹縫產生的衍射的條紋圖像的主極大寬度δx定,利用matlab計算由可變狹縫產生的衍射的條紋圖像的主極大寬度δx變;
g)通過公式計算可變狹縫的寬度a變,其中式中f為凸透鏡的焦距,λ為雷射光源的波長;
h)在移動物體發生微小位移後,可變狹縫的寬度改變,ccd相機將位移後的兩幅衍射圖像記錄並轉化為數字信息保存至計算機;
i)利用matlab讀取兩幅衍射圖像,使用rgb2gray函數命令對讀取到的圖像進行灰度值轉換;
g)利用巴特沃斯低通濾波器對轉換為灰度值的圖像進行傳遞函數處理,使其圖像平滑濾波;
k)將兩幅平滑濾波後的圖像通過傅立葉變換轉變為條紋圖像;
l)利用matlab計算由定標狹縫產生的衍射的條紋圖像的主極大寬度δx定,利用matlab計算由位移後的可變狹縫產生的衍射的條紋圖像的主極大寬度δx變′;
m)通過公式計算為以後的可變狹縫的寬度a變′
n)通過|a變-a變『|計算移動物體的位移量。
通過兩條平行單縫,一條為定標狹縫(縫寬已知),另一條為測量狹縫(縫寬可變),兩條單縫分別衍射,兩條狹縫得到的不同衍射圖像會由凸透鏡匯聚到透鏡的焦平面上,然後由ccd器件進行採集。圖像傳輸到軟體中進行下一步的分析計算,最後計算出縫寬的變換,也就是微小位移量。實驗將雷射通過定標狹縫衍射得到的衍射圖像與通過測量狹縫得到的衍射圖像進行對比分析,計算得出測量狹縫的寬度,待改變測量狹縫的寬度後,再進行衍射測量,最終得到微小位移。與實驗室傳統的微小位移測量方法比較而言,基於單縫衍射原理的測量結構比較簡單,並且基於計算機計算測量的光學圖像處理技術擁有很多無法比擬的優點,這種方法能夠實現自動化,智能化的測量,尤其是基於解析度較高的ccd相機的光學圖像處理技術的方法,在測量中可以實現高精度的測量。
通過本實驗裝置可以較為精確的測量微小位移,並且將實驗結果應用於各類相關實驗中,例如測量金屬膨脹係數,測定楊氏模量等相關實驗。
本發明設計的測量方式與實驗室傳統的微小位移的測量方法相比較,具有非常明顯的優勢。在物理設計的角度上,我們採用了自主設計的單縫衍射方式,利用高解析度的ccd設備和matlab軟體,將三者完美的結合起來,利用圖像的灰度值來計算物體的微小位移,具有較高的創新性和突破性。
在測量方式上擁有以下優點:
(1)方便操作:實驗裝置簡易,操作步驟簡單,人為幹預比較少。
(2)自動化測量:本實驗基於ccd採集系統和matlab圖像處理系統進行測量,基本沒有人為操作,完全實現自動化測量。
(3)結構獨特:對比狹縫衍射系統是一種自主設計的衍射系統,結構新穎,測量精度高。
(4)測量方式簡單。
(5)誤差小:由於應用對比狹縫衍射,在圖像對比處理時,把無關的參數和儀器誤差約去,去除參數不準確和儀器變動帶來的影響。
此方法基於matlab光學圖像處理技術,並應用計算機計算實驗數據,能夠實現自動化,智能化的測量,所以此方法擁有很多無法比擬的優勢。尤其是基於單縫衍射的對比狹縫的衍射系統、高解析度ccd相機的圖像採集和基於matlab的光學圖像處理技術方法,是此項課題研究最主要的幾大亮點,因此在測量中可以實現自動化、智能化、高精度的測量微小位移。
進一步的,雷射光源可以採用650nm的紅光光源。
步驟f)中主極大寬度δx定的計算方法為:
利用matlab軟體提取步驟d)中由定標狹縫產生的衍射的條紋圖像的灰度值矩陣,利用[dlm]=max(d13)命令語句,提取灰度值矩陣中每一列數組中灰度值的最大值,將它們重新排列構成新的數組[dlm],[dlm]數組所構成的圖像就是各個灰度值的最大值構成單縫夫琅禾費衍射光強分布圖;
f-1.2)在matlab軟體中利用[d1jxd]=find(diff(sign(diff(d1m)))==2)+1命令語句尋找單縫夫琅禾費衍射光強分布圖中所有極小值的地址,灰度值極小值定義為暗條紋的地址,地址存放在[d1jxd]中;
f-1.3)在matlab軟體中利用利用[d1bd]=find(d1m==max(max(d1m)))命令語句尋找單縫夫琅禾費衍射光強分布圖中光強最大值的地址,光強最大值的地址定義為主極大中心的地址,地址存放在[d1bd]中;
f-1.4)在matlab軟體中利用[d1z1]=min(d1jxd(find(d1jxd>d1bd)))命令語句尋找大於主極大中心的所有暗條紋地址中最小的一暗條紋,該暗條紋的地址定義為正一極暗條紋中心的地址,地址存放於[d1z1]中;
f-1.5)在matlab軟體中利用[d1f1]=max(d1jxd(find(d1jxd<d1bd)))命令語句尋找大於主極大中心的所有暗條紋地址中最大的一暗條紋,該暗條紋的地址定義為負一極暗條紋中心的地址,地址存放於[d1f1]中;
f-1.6)利用[d1x]=d1z1-d1f1命令語句計算正一極暗條紋中心的地址與為負一極暗條紋中心的地址之間的間距,存放在[d1x]中,該間距為主極大寬度δx定。
步驟f)中主極大寬度δx變的計算方法為:
f-2.1)利用matlab軟體提取步驟d)中由可變狹縫產生的衍射的條紋圖像的灰度值矩陣,利用[dlm]=max(d13)命令語句,提取灰度值矩陣中每一列數組中灰度值的最大值,將它們重新排列構成新的數組[dlm],[dlm]數組所構成的圖像就是各個灰度值的最大值構成單縫夫琅禾費衍射光強分布圖;
f-2.2)在matlab軟體中利用[d1jxd]=find(diff(sign(diff(d1m)))==2)+1命令語句尋找單縫夫琅禾費衍射光強分布圖中所有極小值的地址,灰度值極小值定義為暗條紋的地址,地址存放在[d1jxd]中;
f-2.3)在matlab軟體中利用利用[d1bd]=find(d1m==max(max(d1m)))命令語句尋找單縫夫琅禾費衍射光強分布圖中光強最大值的地址,光強最大值的地址定義為主極大中心的地址,地址存放在[d1bd]中;
f-2.4)在matlab軟體中利用[d1z1]=min(d1jxd(find(d1jxd>d1bd)))命令語句尋找大於主極大中心的所有暗條紋地址中最小的一暗條紋,該暗條紋的地址定義為正一極暗條紋中心的地址,地址存放於[d1z1]中;
f-2.5)在matlab軟體中利用[d1f1]=max(d1jxd(find(d1jxd<d1bd)))命令語句尋找大於主極大中心的所有暗條紋地址中最大的一暗條紋,該暗條紋的地址定義為負一極暗條紋中心的地址,地址存放於[d1f1]中;
f-2.6)利用[d1x]=d1z1-d1f1命令語句計算正一極暗條紋中心的地址與為負一極暗條紋中心的地址之間的間距,存放在[d1x]中,該間距為主極大寬度δx定。