2010-11-30 97 views
2

我有一個三維的矩形(其由於投影失真不是圖像中的矩形)的圖像。我知道這個矩形的所有角落的所有世界和圖像座標。如何變換一個投影的3D矩形成2D軸線對齊矩形

我需要做的是確定這個矩形內的圖像中的一個點的世界座標。要做到這一點,我需要計算一個轉換來將該矩形解除投影到一個2D矩形。

如何計算該變換?

在此先感謝

回答

1

這是保持直線四邊形之間找到映射的一個特例。這些通常被稱爲單應變換。在這裏,其中一個四邊形是矩形,所以這是一個流行的特例。你可以谷歌這些條款(「四到四」等)來找到解釋和代碼,但這裏有一些網站給你。

Perspective Transform Estimation

a gaming forum discussion

extracting a quadrilateral image to a rectangle

Projective Warping & Mapping

ProjectiveMappings for ImageWarping保羅Heckbert。

數學不是特別舒服,但它並不難任。你也可以從上面的鏈接中找到一些代碼。

1

如果我理解正確的話,你必須在矩形的投影二維點,你知道矩形的所有四個角的三維(世界)和2D(圖像)的座標。目標是找到投影到給定點的(3D,世界)矩形內部唯一點的3D座標。

(執行步驟1-3以下爲矩形的兩個三維(世界)座標,並且2D(圖像)座標。)

  1. 識別矩形作爲其的(任何)一個角「起源「,並稱之爲」A「,我們將其視爲矢量。
  2. 按順序標記其他頂點B,C,D,以便C對角相反A.
  3. 計算向量v = AB和w = AD。這些形成了矩形中點的很好的局部座標。矩形中的點的形式爲A + rv + sw,其中r,s是範圍[0,1]中的實數。這一事實在圖像座標中的世界座標中是真實的。在世界座標系中,v和w是正交的,但在圖像座標系中,它們不是。沒關係。
  4. 在圖像座標中,從矩形圖像中的點(x,y)開始,計算r和s的值。這可以通過向量方程(x,y)= A + rv + sw的線性代數完成,其中只有r和s是未知的。它將歸結爲一個2x2矩陣方程,您可以使用Cramer規則在代碼中解決這個方程。 (此步驟將中斷,如果需要的矩陣的行列式是零。這對應於矩形可見邊緣上的情況下,溶液是不是在這種情況下,唯一的。如果這是可能的,使特殊的例外。)
  5. 從4使用r的值和s,計算A + RV +使用載體A,v,W,用於世界座標SW。這是矩形上的世界點。