2013-05-26 16 views
4

當樣本數量有限且在圖像的一個小區域內時,您是否有任何關於攝像機校準的想法或建議?在OpenCV和C++中使用有限的一組圖像進行攝像機校準

下面是一些額外的信息:

我工作的一個項目,幫助殘疾人使用計算機與他們的眼睛。由於我對OpenCV的經驗不足,有些東西給我帶來了一些麻煩。

相機是頭戴式的,凸度不錯,但眼球本身是凸起的並且旋轉運動。我正在計劃「扁平」眼睛,使它看起來在飛機上移動。明顯的選擇是校準相機以嘗試去除徑向失真。

在校準過程中,用戶看着屏幕上網格的角落。在校準過程中,瞳孔的時刻會存儲在每個位置的墊子上。所以當我看着屏幕上的一個網格的角落時,我有一個圖像的點與許多眼睛位置相對應。

我可以得出連接的四個點組填充poligons並創建一個棋盤圖案也可以保存每隻眼睛位置爲點,並使用對稱圓形圖案來校準。

我的問題是,相機是靜態的,眼睛的位置不會改變,因此,本人水平有限,我怎麼許多圖像可以產生,因爲現在的位置範圍不是很大。

我想到細分網格成更小的棋盤圖案,但他們都將在同一個小區域,所以我不知道如何有用,這將是。

謝謝!

+0

請更清楚/明確地說明您的確切問題。幫助獲得更多答案。 –

+0

謝謝,現在改寫了,希望更清楚 – Jorge

回答

1

你說的實際上並不是攝像機校準 - 它是你的眼睛跟蹤設置的校準。

當你校準在OpenCV的攝像頭,你就嘗試刪除徑向和切向變形,因此它似乎直覺以應用程序爲「扁平化」的圓形物體。然而,由球面鏡頭引入的徑向失真不是你正在處理的。您關心的是球面物體上的點投射到圖像上的方式。

不可否認的是,模型將看起來非常相似,但問題是,你不應該你的設置的校準測試對象時觸摸你的相機校準(你應該做的下線)。您的「位置範圍」有限的事實是您的問題所固有的,並且不能通過圖像處理進行更改。你拍攝的眼睛只會填滿你相機的很多視野。

個人而言,我只是記錄在你的屏幕上9個均勻分佈點的瞳孔位置和關聯屏幕座標瞳孔二次多項式的圖像座標。這歸結爲球形投影的第一個泰勒項,這可能足夠好,除非眼球運動很大。然後,您可以使用16而不是9點對第二次校準測試預測的運動。

我想你可以找到一個book on the topic欲瞭解更多信息。