2013-09-16 73 views
0

我正在做一個移動增強現實應用程序。我需要校準我的相機以使用棋盤校準來獲得內在和外在參數。同一相機的內在參數是否相同?

我可以證明,如果我校準了我的nexus 4,所有的連接點將具有相同的焦距,偏斜因子和失真矩陣?

謝謝

+0

如果假設所有nexus 4設備都有完全相同的相機是!這裏最有價值的詞恰好是 – Engine

+0

在現實生活中,nexus4是否有完全一樣的相機?我覺得不是 ... ? – kakou

+0

除非您需要真正的高精度,否則對所有這些電話進行相同的校準應該是安全的。 – ChronoTrigger

回答

1

那麼,答案可以是YES和NO。正如你所說,在現實生活中,沒有相機與另一相機完全一樣,即使它們來自同一製造商。但是,爲了讓我們的生活更輕鬆,是的,我們使用這種簡化方式,即使是在攝影測量/計算機視覺項目中,精確度要求也非常高。

1

大多數攝像機都帶有編碼成攝像機流水線的非失真操作,因此您很可能根本不需要搜索失真參數。只需檢查圖像外圍的直線是否非常直。我預計由於像素是正方形,偏斜接近於零,而fx = fy。

除了您提到的參數外,還有兩個主要點Cx,Cy(光軸與傳感器的交點,通常接近w/2,h/2)。因此,總體來說,你只有3個參數:F,Cx,Cy,第一個參數是同一型號手機中最差的(根據我的經驗)。如果您不使用手機來計算另一臺相機的相對位置,則很可能只需要準確地知道焦距。

顯然,當您需要擔心單個參數時,比使用棋盤裝備更容易獲得它,並嘗試除內在參數之外找到外部參數。你自己看着辦吧,即使沒有測量 - 只是一刀的視圖(如getHorizo​​ntalViewAngle())相機領域,並使用

tan(fov) = image_width/2/f 

或者你可以做一個簡單的測量你的手機平行保持到目標:對於垂直尺寸H的目標產生H個像素的圖像,你總得F爲

f/z = h/H