該系列文章爲 OpenCV+Python Tutorials的學習筆記
代碼託管在Github
轉載請註明: http://blog.csdn.net/a352611/article/details/51417779 [三記的博客]
寫在文章開始之前:
關於幾何變換,常見的資料都沒有把數學原理部分講透徹,基本都是照着課本說,導致我很多地方無法徹底理解.思前想後還是把這一塊分成兩個部分,一部分專門講數學,一部分專門講應用.本文爲數學原理部分。
Geometry Transformation 幾何變換
對圖像的幾何變換本質上是一種線性變換,其數學本質爲
Inew=TIold
即通過變換矩陣
2D平面變換示意圖(”Computer Vision: Algorithms and Applications”, Richard Szeliski)
- Translation 平移
- Euclidean(rigid, rotation) 旋轉
- Scale 縮放;圖中沒有畫出
- Similarity 相似變換;結合旋轉,平移和縮放
- Affine 仿射變換;想象在similarity的基礎上用兩隻手對圖像進行按壓拉伸
- Projective 投影變換;想象投影儀做的事情,將一個面投影到另外一個面的情況
Homogeneous coordinates 齊次座標
簡單的說法就是對於點
直接將點
P=[x;y]T 變爲P=[x;y;1]T
而向量P=[x;y]T 變爲P=[x;y;0]T
由於我們的變換矩陣是一個3x3的矩陣,最後一列的意義就是平移,這樣就實現平移對向量無效,也能讓線性變換統一寫爲
完整的Homogeneous coordinates概念請翻閱”Multiple View Geometry in computer vision”, Richard Hartley and Andrew Zisserman
平行線相交於一點
Scaling,Rotation,Translation 縮放、旋轉、平移
縮放 Scaling
旋轉 Rotation
平移 Translation
只有齊次座標系下的表示