2014-12-06 64 views
9

我得到了一個平面(支持矢量和平面的法向量),這是一個由我知道內在參數(fx,fy,cx,cy)的相機拍攝的圖像。我如何獲得將此圖像轉換爲類似鳥瞰的圖像(以便鳥瞰圖與平面的法向矢量共線)。我很困惑我必須使用的座標系統,一些矩陣在世界座標中,一些在本地座標系中。我知道在OpenCV中有warpPerspective(),這是否會完成這項工作?如何創建給定飛機的鳥瞰圖像?

進出口使用的OpenCV:2.4.9

非常感謝!

更新: 我一定要計算4點用相機從鳥瞰面臨正常的,然後4點並將其傳遞給findHomography()獲得變換矩陣?

更新: 已解決。得到它的工作!

+0

你需要的是頂視圖,對嗎?即視角/攝像機矢量與平面法線之間的角度爲直角(180°)。 OTOH [鳥瞰圖](https://en.wikipedia.org/wiki/Bird%27s-eye_view)將不會如此,它會有一些角度,而不是0/180°。俯視圖是正視圖,鳥瞰圖是透視圖。 – legends2k 2014-12-10 06:56:35

+0

這可能有助於計算相機變換:[Derived gluLookAt](http://stackoverflow.com/a/22715392/183120) – legends2k 2014-12-10 13:36:03

+1

您將需要:相機的外部參數(至少視角)或4平面上「已知」點的像素位置(足以知道平面上這些點之間的相對位置)。 – Micka 2014-12-10 13:51:44

回答

2

世界平面上的矩形將顯示爲圖像中的四邊形。
在鳥瞰圖中,您希望它再次呈現爲矩形。 您必須至少知道頂視圖的這個世界矩形的縱橫比才能沿着兩個軸正確且相等地縮放。

鑑於4四邊形2D點在你的形象,目標矩形角(對此基本上是選擇二維座標),你可以從你的四邊形計算單應爲矩形,並使用warpPerspective()來呈現它。

這通常是最簡單的方法。

你也可以通過相機和矩陣自己。爲此,您需要將相機旋轉到帶有正投影的平面之上。請參閱單應性分解here

+0

我的四邊形是什麼?以後我如何計算單應性? – 2014-12-08 22:07:51

+0

通過計算飛機上的4個點得到四邊形嗎?你的意思是「計算從你的四邊形到矩形的單應性」,哪個矩形?你能詳細解釋一下嗎?謝謝! – 2014-12-10 00:29:08