2015-07-21 72 views
1

我正在研究這個項目,我需要知道對象空間中「精確」的座標。我開始尋找這篇論文的答案:http://dsc.ijs.si/files/papers/S101%20Mrovlje.pdf使用3個或更多攝像頭計算空間中某點的三維座標

它描述瞭如何找到從兩個對齊的攝像機的軸到物體的距離。太好了,所以這給了我一個我知道的距離,但是我只知道軸的距離而不是相機的中間距離,所以我認爲如果我沒有距離攝像機的距離相機中間。

所以我想,很好,爲什麼不添加兩個垂直於前兩個的其他相機。好吧,現在,這給了我一個飛機上的座標。然後我想,如果攝像機不在同一個平面上,我肯定可以計算另一個距離,一個攝像機從底部平面和一個攝像機從上部平面,但這是問題開始發生的地方:這些相機沒有對齊。

所以兩個問題來到我的腦海:

  • 是否有可能得到的公式容易不平行的相機使用?

  • 如果是的話,會有一種方法只使用兩個攝像頭,對吧?

回答

0

一般而言,您只需要兩個攝像頭即可解答您的問題。

現在,假設你的攝像頭位於(100)(010),那你可以找到向量從每個您的相機有問題的點指點,說(m1,m2,m3)和​​。然後有問題的點位於兩條線

(1,0,0) + s(m1,m2,m3) 
(0,1,0) + t(n1,n2,n3) 

的交集從那裏,我們得到方程

-m1 * s + n1 * t = 1 
m2 * s - n2 * t = 1 
m3 * s - n3 * t = 0 

該系統有3個方程和2個變量,但2E知道系統的系統有一個解決方案,因爲這兩條線的交點處有一個點。我建議使用高斯消元法求解系統,但在大多數情況下,我們還可以通過消除簡單的步驟如下:

s = (n3/m3) * t 
m2 * (n3/m3) * t - n2 * t = 1 
(m2 * n3 - n2 * m3)/m3 * t = 1 
t = m3/(m2 * n3 - n2 * m3) 

和問題點是

( (n1*m3)/(m2*n3-n2*m3), 1 + (n2*m3)/(m2*n3-n2*m3), (n3*m3)/(m2*n3-n2*m3)) 

或做了一點點代數,

(n1*m3, m2*n3, n3*m3)/(m2*n3-n2*m3) 

這工作的大部分時間,除非m3=0m2*n3-n2*m3=0

類似的計算適用於一般位置的兩臺攝像機;或者,您可以使用任何線性變換,將相機帶到(100)(010),使用上面的計算,並使用逆變換將結果返回到其原始座標。

有各種各樣的病理和特殊情況(特別是,如果點位於由兩臺相機確定的軸上,則無法找到該點的位置),但這些不會顯示出典型數據。但是,如果您想保證能夠在所有情況下回答問題,則需要三臺非共線相機。

相關問題