仿射變換和透射變換


參考鏈接:

http://blog.csdn.net/u012380663/article/details/43273527

http://blog.csdn.net/xiaowei_cqu/article/details/26471527

序言

       在圖像處理中,對圖像進行二維變換有仿射變換(Affine Transformation),透視變換(Perspective Transformation)(應該還有其他變換,但是我用到的比較多的是這兩種變換)。

一、仿射變換

1、概念

       仿射變換(Affine Transformation)是空間直角坐標系的變換,從一個二維坐標變換到另一個二維坐標,仿射變換是一個線性變換,他保持了圖像的“平行性”和“平直性”,即圖像中原來的直線和平行線,變換后仍然保持原來的直線和平行線,仿射變換比較常用的特殊變換有平移(Translation)、縮放(Scale)、翻轉(Flip)、旋轉(Rotation)和剪切(Shear)。

       

圖1.仿射變換

     2、仿射變換的變換公式推導

      

        在opencv提供的仿射變換中,變換的公式是一個2*3的矩陣,如下:

    A是仿射變換2*3矩陣,M是2*2矩陣,表示坐標軸的旋轉和縮放,B是2*1矩陣,是坐標軸平移矩陣。

    坐標變換如下:

    可以看出,A矩陣只有6個參數,所以只要知道3個點之間的仿射變換,就可以求出A矩陣。

二、透視變換

 透視變換(Perspective Transformation)是指利用透視中心、像點、目標點三點共線的條件,按透視旋轉定律使承影面(透視面)繞跡線(透視軸)旋轉某一角度,破壞原有的投影光線束,仍能保持承影面上投影幾何圖形不變的變換。

圖2.透視變換

透視變換(Perspective Transformation)是將圖片投影到一個新的視平面(Viewing Plane),也稱作投影映射(Projective Mapping)。通用的變換公式為:

u,v是原始圖片左邊,對應得到變換后的圖片坐標x,y,其中
變換矩陣可以拆成4部分,表示線性變換,比如scaling,shearing和ratotion。用於平移,產生透視變換。所以可以理解成仿射等是透視變換的特殊形式。經過透視變換之后的圖片通常不是平行四邊形(除非映射視平面和原來平面平行的情況)。

重寫之前的變換公式可以得到:

所以,已知變換對應的幾個點就可以求取變換公式。反之,特定的變換公式也能新的變換后的圖片。簡單的看一個正方形到四邊形的變換:
變換的4組對應點可以表示成:

根據變換公式得到:

定義幾個輔助變量:

都為0時變換平面與原來是平行的,可以得到:

不為0時,得到:

求解出的變換矩陣就可以將一個正方形變換到四邊形。反之,四邊形變換到正方形也是一樣的。於是,我們通過兩次變換:四邊形變換到正方形+正方形變換到四邊形就可以將任意一個四邊形變換到另一個四邊形。

所以,我們可以發現仿射變換就是特殊的透射變換,這里我們在理解它們的變換矩陣時一定要將矩陣分部分析,比如之前的一部分是用來旋轉和縮放,一部分是用來平移,還有一部分是用來透射;

之前的(x , y , w)中,w的意義我覺得它就是指投影點到面上的“距離”,這里之所以打引號我個人認為它不是物理距離,更多的帶有一種數學上的“單位1”的意義;

兩者異同

所以對於仿射變換,一般地w = w' , 也就是依然是這個平面,所以就相當於一個2D平面變換(忽略了投影點);

對於透射變換,一般的w' = f(w) , f即相應的透射變換,所以這里就是投影點通過這個面投射到另一個承影面,這里投影點就顯示了它的功能,所以我們說仿射變換是特殊的透射變換;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM