2012-01-12 65 views
0

使用OpenCV可以通過2d-3d點關係獲得圖像或相機位置的前視平行視圖嗎?是否有可能通過2d-3d點關係獲得圖像或攝像機位置的平視圖?

爲此我有內在和外在參數。我還有一組控制點(位於一個平面上)的三維座標圖像(關係2d-3d)。

事實上,我需要相機的位置和方向,但如果我可以將圖像轉換爲平行視角,並不難找到它。

如果OpenCV無法做到,那麼其他庫可以解決這個問題嗎?

+0

順便說一句,是不是寫這無關與問題的意見好主意嗎? – sergtk 2012-01-12 16:22:52

+3

如果你解決了這個問題,但沒有具體的答案,你應該**自己添加**正確的答案,並接受它讓別人知道如何處理這個問題。這是適當的協議。 – karlphillip 2012-01-12 16:24:11

+0

好吧,謝謝,將來會記住這一點(無論如何,我嘗試添加我的正確答案) – sergtk 2012-01-12 16:25:46

回答

0

解決方案基於OpenCV的文檔中的公式Camera Calibration and 3D Reconstruction

讓我們考慮數字形式無失真係數(與矩陣形式對比度)。

我們有uv
這很容易計算x'y'
但是xy無法計算,因爲我們可以選擇任何非零值z
3d中的線對應於2d圖像中的一個點。

爲了解決這個問題,我們採取兩點爲z=1z=2。 然後我們在3d空間中找到2個點,指定線(x1,y1,z1)(x2,y2,z2)

然後我們就可以申請R-1(x1,y1,z1)(x2,y2,z2)導致兩點(X1, Y1, Z1)(X1, Y1, Z1)確定線。由於我們的控制點位於一個平面(爲簡單起見,假設平面爲Z = 0),我們可以找到相應的點爲3d的點X和點號Y

mm的歸一化應用於像素後,我們獲得了平行前後的圖像。

(如果我們輸入圖像失真,我們應該首先undistort吧)

相關問題