Affine Transformation 是一種混合的線性二維幾何轉換,而混合的線性轉換包括:位移、放大縮小、旋轉 以及 Shearing 的操作;在數位影像的處理上,就是將影像中 pixel 點的位置,經過線性轉換後,移到新的位置上。
General Affine Transformation 可以以座標搭配線性操作表示,以 (x1, y1) 為原本的位置,(x2, y2) 為經過轉換後的位置:
為了符合線性轉換(Linear Transformation) 的定義 - [f(a+b) = f(a) + fb],將 Affine Transformation 以 homogenerous coordinates 來表示,為:
以下一一說明各項不同的操作,對影像的影響,及相對應的矩陣變化為何~
假設原影像為:
經過位移的變化後,影像變為:
假設位移為 (30, 60),矩陣表示方式為:
經過放大 or 縮小後,影像變為:
假設 x, y 軸各為原本的 0.5 倍,矩陣表示方式為:
影像的反射為放大、縮小的特例:
假設 x 為原本的 -1 倍,y 軸不變,矩陣表示方式為:
經過旋轉的變化後,影像變為:
假設逆時針旋轉 90 度後,矩陣表示方式為:
經過 Shearing(扭轉?) 的變化後,影像變為:
Shearing 的變化較為複雜,將 x, y 軸分開表示,其矩陣表示方式為:
Visual Odometry 的應用
於攝影的過程中,如果相機為可以隨意移動,則可能有以下的移動方向:上下左右、前後、旋轉,這些動作對所拍攝影像的內容會有相對的影響:
相機的上下左右移動會造成影像內容的下上右左位移
相機的前後移動會造成影像內容的放大縮小
相機的 roll 旋轉會造成影像內容的逆方向旋轉
相機的 yaw, pitch 旋轉則會造成影像內容的 shearing
所以藉由推算出前後影像內容的相對關係,可以回推出相機在這兩張影像之間的移動與旋轉。
如上所述,相機的移動方向為 6 DoF (Degree of Freedom),包括 3D Translation 以及 3D Rotation,如圖:
Affine Transformation Matrix
假設對某物體作位移(T: tx, ty)、放大(S: sx, sy)及旋轉(R: θ),而該物體之相對原點座標為 (T0: x0, y0),該物體相對於原點座標的座標為 (x1, y1),則其 Affine Transformation Matrix 為: (R * S * T * (x, y)) + (x0, y0)。
將 R * S * T 以矩陣表示:
Inverse Affine Transformation Matrix
在得到 Affine Transformation Matrix 之後,要如何反推,得到分別的 R, S, T 矩陣呢?
同樣參考 R * S * T 矩陣的分解式:
從矩陣來看,可以得到 6 個等式,而矩陣的變數只有 5 個:sx, sy, tx, ty 及 θ,所以可以得到完整的解。
Reference
Affine Transformation
2D transformation matrices baking
文字內容 或 影像內容 部份參考、引用自網路,如有侵權,請告知,謝謝。
全站熱搜
留言列表