日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zemax设置 像方远心_ZEMAX相机标定非常不完全指南

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zemax设置 像方远心_ZEMAX相机标定非常不完全指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ZEMAX是廣為使用的一款光學仿真軟件,是進行光路設計和分析的利器;而相機標定,則是進行機器視覺任務時,拿到一款相機,對其實際參數進行確定的過程。

因此看起來,二者其實主要是針對不同的側重點。前者主要面向相機開發,后者面向相機使用。

但是最近遇到了一個問題,不得不使用ZEMAX進行一些相機標定算法方面的驗證。這期間遇到了一些問題,這里記錄下來希望可以與大家分享,如有不對之處進請指正。

事情的經過是這樣的:現在手頭有一臺特殊光路的相機,由于相機是課題組自己設計搭建,因此也有相應的ZEMAX工程文件。在理想情況下該相機與普通相機的成像模型完全一致,因此理論上可以使用張正義相機標定法進行標定。

然而,相機光路中包含一些特殊結構的光學元件,這些元件的安裝與制造誤差勢必會為成像系統引入畸變,因此有必要為這些畸變和誤差建立對應的數學模型,就類似于普通相機中的徑向畸變與切向畸變模型,從而對其進行矯正。所以問題來了,怎么驗證模型的可靠性呢?

仿真!

我的想法是這樣的。在ZEMAX中對一些光學元件的角度進行一些微調,以此來模擬實際情況中的安裝誤差;接著在ZEMAX中模仿張正義標定法,在物方視場中設置類似棋盤格的視場:

令成像系統在不同的位置與角度對物面成像,記錄對應的像點。如此則得到了多組物點-像點的對應關系,接著使用張正義標定法再加上自己建立的誤差模型對其進行標定,以此來驗證自己的誤差模型是否準確可靠。

OK,但是實際操作中,比較麻煩的地方就是“令成像系統在不同的位置與角度對物面成像”。下面就進入正題,說說我是怎么達到這個目的的。

一.旋轉光學系統

當光路與視場都設定好之后,此時的3D視圖是這樣的:

(吐槽一下,ZEMAX2017以后雖然最多可以設置超過2000個視場,但是只顯示12個,如果視場中有48個視場點,需要重復設置4次才能完成所有成像)

進行相機標定的時候,我們需要在不同角度進行拍攝,因此首先想到的辦法是旋轉光學系統。

所以首先在物面之后添加坐標間斷,設置旋轉參數。

然后就成了這個樣子:

光線進入了成像系統,但是卻沒有穿過后續的元件。

這里有一個辦法或許能解決這個問題:

打開系統選項中的光線瞄準,這時:

可以看到光線已經按照光軸進行了偏折,接著調整坐標間斷中的偏心參數,令所有光線進入即可。

如果能順利進行到這里的話,就已經大功告成了。但是我實際中遇到的問題是,當光路結構比較復雜的時候,在開啟光線瞄準的情況下,輸入傾斜角度經常會提示:

而且由于光線瞄準是軟件進行迭代求解,如果一次輸入大角度,同樣也會提示上述錯誤。比如直接輸入30°就會報錯,但是連續輸入10°、20°、30°可能就沒有問題。

在我的光學結構中,即使輸入很小的傾斜角度就會報錯,因此上述方法無法使用

二.旋轉物面

山不走來,那就走向山;既然旋轉光學系統不行,那旋轉物面呢?

ZEMAX中,物面可以設置為傾斜面,可以輸入正切值改變物面的角度。

比如輸入Y正切為2:

看起來好像不錯的樣子,但問題是,物面中各個視場之間的關系已經與之前不再相同了,之前我們設置視場的時候,是為每一個視場設定了一個平面坐標,但是旋轉之后,雖然各個視場點仍在一個平面上,但是彼此之間的距離已經與之前不同了。

此時每個物面中的點,都成為一個三維點,x、y坐標是我們提前設置的,Z坐標為:

如果用這種方法進行相機標定,就類似于實際進行相機標定時,不同角度下拍攝不同的標定板。

但是仔細想想,張正義標定法中其實并沒有限定標定板必須統一啊,拍一張換一個標定板也可以啊,只要確定標定板的尺寸和對應的像點就可以嘍。

于是接下來的問題轉換為:三維空間平面中的三維坐標,怎么轉化成該平面二維坐標?

我的做法是這樣的:

根據上述方程,顯然這個平面的法向量是(tanθx,tanθy,-1)。

顯然(1,0,tanθx)也在該平面上,對上述兩個向量進行模為1的操作后,再進行叉乘得到了第三個向量。

這三個向量組成了旋轉后平面的一組正交基。對這三個向量組成的矩陣取逆,就得到了原始物面與旋轉之后物面的轉換關系。

將該逆矩陣與三維空間平面中的三維坐標相乘,就得到了對應的平面二維坐標(其實也是三維坐標,只是最后一個維度數值為0)。

再結合該平面每個視場對應的像點,就可以進行標定了。

值得注意的是,MATLAB中相機標定函數中的世界坐標是固定的,但是我們這里相當于每張照片都不同,因此相應的標定代碼需要進行一些修改,才可以完成相機標定。

總結

以上是生活随笔為你收集整理的zemax设置 像方远心_ZEMAX相机标定非常不完全指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。