仿射變換及其變換矩陣的理解(詳細解析)

2021-02-20 計算機視覺社區

目錄

寫在前面

仿射變換:平移、旋轉、放縮、剪切、反射

變換矩陣形式

變換矩陣的理解與記憶

變換矩陣的參數估計

參考

寫在前面

2D圖像常見的坐標變換如下圖所示:

這篇文章不包含透視變換(projective/perspective transformation),而將重點放在仿射變換(affine transformation),將介紹仿射變換所包含的各種變換,以及變換矩陣該如何理解記憶。

仿射變換:平移、旋轉、放縮、剪切、反射

仿射變換包括如下所有變換,以及這些變換任意次序次數的組合

平移(translation)和旋轉(rotation)顧名思義,兩者的組合稱之為歐式變換(Euclidean transformation)或剛體變換(rigid transformation);

放縮(scaling)可進一步分為uniform scalingnon-uniform scaling,前者每個坐標軸放縮係數相同(各向同性),後者不同;如果放縮係數為負,則會疊加上反射(reflection)——reflection可以看成是特殊的scaling;

剛體變換+uniform scaling 稱之為,相似變換(similarity transformation),即平移+旋轉+各向同性的放縮;

剪切變換(shear mapping)將所有點沿某一指定方向成比例地平移,語言描述不如上面圖示直觀。

各種變換間的關係如下面的venn圖所示:


通過變換矩陣可以更清晰地看出這些變換間的關係和區別。

變換矩陣形式

沒有平移或者平移量為0的所有仿射變換可以用如下變換矩陣描述:

不同變換對應的a,b,c,d約束不同,排除了平移變換的所有仿射變換為線性變換(linear transformation),其涵蓋的變換如上面的venn圖所示,其特點是原點位置不變多次線性變換的結果仍是線性變換

為了涵蓋平移,引入齊次坐標,在原有2維坐標的基礎上,增廣1個維度,如下所示:

所以,仿射變換的變換矩陣統一用 來描述,不同基礎變換的a,b,c,d,e,f約束不同,如下所示:

此外,旋轉和平移相乘得到剛體變換的變換矩陣,如下,有3個自由度(θ,tx,ty),這裡旋轉方向為逆時針方向,因此與上圖中的正負號不同,

再乘上uniform scaling得到相似變換,有4個自由度(s,θ,tx,ty),如下:

自然,仿射變換的變換矩陣有6個自由度(a,b,c,d,e,f)。

變換矩陣的理解與記憶


坐標系坐標原點基向量決定,坐標原點基向量確定了,坐標系也就確定了。

對於坐標系中的位置(x,y),其相對坐標原點在[1,0]方向上的投影為x,在[0,1]方向上的投影為y——這裡投影的意思是過(x,y)做坐標軸的平行線與坐標軸的交點到原點的距離,即(x,y)實際為:

當坐標系變化,坐標系中的點也跟著變化,但點相對新坐標系(x′−y′坐標系)的位置不變仍為(x,y),以旋轉變換為例,新坐標軸的基向量則變為[cos(θ),sin(θ)]和[−sin(θ),cos(θ)],所以點變化到新位置為:

新位置和新基向量是相對絕對坐標系(x−yx−y坐標系)而言的。其他變換矩陣同理。

總結一下:

這時再對照上面的各種變換矩陣,就很好理解了。

變換矩陣的參數估計

如果給定兩個對應點集,如何估計指定變換矩陣的參數?

一對對應點可以列兩個線性方程,多個對應點可以列出線性方程組,為了求解參數,需要的對應點數至少為自由度的一半,多個點時構成超定方程組,可以基於最小二乘或者SVD分解等方法進行求解,這裡不再展開。

參考

Image Alignment and Stitching: A Tutorial

wiki: Affine transformation

Geometric Transformation

Coordinates and Transformations

Transformations

Geometric Transformations

Image Geometry

申明:原文來源網絡,由《計算機視覺社區》公眾號整理分享大家,僅供參考學習使用,不得用於商用,引用或轉載請註明出處!如有侵權請聯繫刪除!

相關焦點

  • 幾何運算-仿射變換
    這些變換用矩陣的方式的話,基本的變換為:平移變換、縮放變換、旋轉變換。假設原始點為P(x, y), 平移後的目的點為P'(x', y')一.平移平移變換的變換公式為:x' = x + pxy' = y + py如果使用向量的方式:平移後點的坐標 = 平移前點的坐標 + 平移向量的坐標。為了方便進行組合變換,使用矩陣的方式會更好,平移變換的矩陣表示方法為:改為齊次變換矩陣方式:
  • 仿射變換(二)—仿射變換在解題中的應用
    仿射變換在解決與橢圓相關的面積問題,特別是面積的最值問題,以及對某些幾何的轉化中有很好的應用,有時可以大大地簡化計算,或將一些題目中隱藏的「平凡」的條件轉化成對解題很有利的「特殊」條件.在仿射變換(一)—什麼是仿射變換中,我們已經知道,對橢圓 應用仿射變換
  • 仿射變換定義等價性的討論
    對仿射變換f有,假設在該變換下點組的共線關係不保持,即E^2中存在不共線的三點A、B、C,有f(A),f(B),f(C)共線。結合此前點組共線關係保持的性質,l2上任意一點經仿射變換後得到的象都在lf(A)f(B) 上。由於直線族上的直線l1,l2,l3僅存在相互平行的關係,l2及其上面的點的具體位置沒有確切要求,這表明直線族中任意直線(即與l1,l3平行的直線及其上面的點)皆滿足這一性質,即f(l)⊆lf(A)f(B) (l∥l1)。
  • 仿射變換巧解橢圓大題
    來自月考的一道題:分析:這道題第二問做法在於尋找MA與MB斜率之積的關係,然後用斜率假設兩條直線方程,進而求D,E坐標,最後用基本不等式求解最值.但也有同學沒有找到兩條直線斜率的關係,而是直接用M點坐標假設直線方程,本質上是一樣的,看下解答過程:這就是橢圓的仿射變換
  • Numpy和OpenCV中的圖像幾何變換
    x』 = Ax其中A是在齊次坐標系中的2x3矩陣或3x3,x是在齊次坐標系中的(x,y)或(x,y,1)形式的向量。這個公式表示A將任意向量x,映射到另一個向量x』。一般來說,仿射變換有6個自由度。根據參數的值,它將在矩陣乘法後扭曲任何圖像。變換後的圖像保留了原始圖像中的平行直線(考慮剪切)。本質上,滿足這兩個條件的任何變換都是仿射的。
  • OpenCV-Python 圖像的幾何變換|十四
    目標學習將不同的幾何變換應用到圖像上,如平移、旋轉、仿射變換等。在仿射變換中,原始圖像中的所有平行線在輸出圖像中仍將平行。為了找到變換矩陣,我們需要輸入圖像中的三個點及其在輸出圖像中的對應位置。然後cv.getAffineTransform將創建一個2x3矩陣,該矩陣將傳遞給cv.warpAffine。
  • 射影變換下的不動點與直線
    1.不動點與直線的代數表示假設變換矩陣為H,不動點為e,則有:He=λe (1)同理對於不動直線l則有:HTl=λl (2)一個3x3矩陣有3個特徵值,如果特徵值互不相同
  • 線性代數拾遺(三):線性變換以及矩陣的意義
    線性代數拾遺(一):線性方程組、向量方程和矩陣方程線性代數拾遺(二):線性方程組的解集及其幾何意義上一章我們討論了齊次和非齊次兩種線性方程組的解集,以及它們的幾何意義。這兩個空間目前是我們理解線性方程組的橋梁,未來還會對這些空間進行更進一步的討論。在這之前,讓我們先來研究一下矩陣的意義。之前的兩章中,矩陣是在矩陣方程中出現的,當時我們理解它的意義為「對向量的一種封裝」,也就是一種「數據」的形式理解矩陣的。這一章,我們引入矩陣的另一層意義:線性變換。
  • 線代專題:《矩陣的初等變換與線性方程組》內容小結、公式、題型與...
    2020-12-09 09:21:23 來源: 不猶豫 舉報   一、初等變換與初等矩陣
  • 徹底剖析考研中矩陣的初等變換
    矩陣的初等變換與行列式的初等變換有兩個共同點,一是初等變換的形式相同;二是都是源於線性方程組。不同點:行列式是一組排列有序的數據根據一定的運算法則得出的一個數值,而矩陣就是一組排列有序的數據。在矩陣中,非常重要的一點就是初等變換。本文將對矩陣的初等變換進行詳盡地闡述。
  • 從圖像恢復仿射和度量性質
    1.無窮遠線在射影變換下,理想點可以可以映射為有限點,因而l∞被映射為有限直線,但如果是仿射變換,l∞不會被映射為有限直線,即仍為l∞。顯然它可以由直線變換方程得出:逆命題也是正確的,即仿射變換是保持l∞不變的最一般的線性變換。結論1. 在射影變換H下,無窮遠直線l∞為不動直線的充要條件是H是仿射變換。
  • 理解矩陣背後的現實意義
    只有第4條是空間的本質,也就是說,容納運動是空間的本質特徵。認識到了這些,我們就可以把我們關於三維空間的認識擴展到其他的空間。事實上,不管是什麼空間,都必須容納和支持在其中發生的符合規則的運動(變換)。你會發現,在某種空間中往往會存在一種相對應的變換,比如拓撲空間中有拓撲變換,線性空間中有線性變換,仿射空間中有仿射變換,其實這些變換都只不過是對應空間中允許的運動形式而已。
  • 伸縮變換:妙解圓錐曲線題
    摘要:本文結合線性代數中線性變換的視角,深入剖析高考解析幾何中圓錐曲線的相關問題,並試圖使用高中知識理解線性變換的本質。利用線性變換中的伸縮變換(縮放變換),可以系統地解決高考圓錐曲線中的線性問題,並且有效地「迴避」了解析幾何運算複雜的難題。
  • 拉普拉斯變換及其逆變換表拉普拉斯變換及其逆變換表
    打開APP 拉普拉斯變換及其逆變換表拉普拉斯變換及其逆變換表 發表於 2017-12-05 18:30:31   拉普拉斯變換應用領域定理   有些情形下一個實變量函數在實數域中進行一些運算並不容易,但若將實變量函數作拉普拉斯變換,並在複數域中作各種運算,再將運算結果作拉普拉斯反變換來求得實數域中的相應結果,   在經典控制理論中,對控制系統的分析和綜合,都是建立在拉普拉斯變換的基礎上的。
  • 圖像特徵點、投影變換與圖像拼接
    各種類型的2D圖像變換都可以用變換矩陣來表示,如下圖所示,其中包括平移變換(Translation)、剛體變換(Rigid)、相似變換(Similarity)、仿射變換(Affine)、投影變換(Projective)。
  • 線性變換終於來了冪等變換
    今天我們改回手寫稿,之前一直沒有怎麼寫線性變換的知識點.原因是我感覺一下說不清楚,以後內容太多了.但是,畢竟線性變換太重要的,肯定需要給大家說.今天就開一個頭,每篇文章的開頭我都會說點最基礎的知識點,這對我們學號線性變換非常有幫助.首先,我們要知道線性變換是什麼?
  • 對傅立葉變換、拉氏變換、z變換詳細剖析
    傅立葉變換把信號由時域轉為頻域,因此把不同頻率的信號在時域上拼接起來進行傅立葉變換是沒有意義的——實際情況下,我們隔一段時間採集一次信號進行變換,才能體現出信號在頻域上隨時間的變化。我的語言可能比較晦澀,但我已盡我所能向你講述我的一點理解——真心希望能對你有用。
  • 圖像特徵點、投影變換與圖像拼接
    各種類型的2D圖像變換都可以用變換矩陣來表示,如下圖所示,其中包括平移變換(Translation)、剛體變換(Rigid)、相似變換(Similarity)、仿射變換(Affine)、投影變換(Projective)。
  • 基於小波包變換和壓縮感知的人臉識別算法
    平強、莊連生[6]等針對人臉識別姿態問題提出了基於仿射變換的人臉分塊稀疏表示,提升了算法的識別性能,但仿射變換和分塊稀疏表示都增加了運算複雜度。  1.2 壓縮感知理論  壓縮感知理論[9]指出,只要信號是可壓縮的或在某個變換域是稀疏的,那麼就可以用一個與變換基不相關的觀測矩陣將變換所得高維信號投影到一個低維空間上。壓縮感知信號稀疏表示主要有兩個方向[10],一是基函數字典下的稀疏表示,二是超完備庫下的稀疏表示。
  • 信號與系統:傅氏變換與拉氏變換的物理解釋
    摘要:在信號與系統學習中,傅立葉變換、拉普拉斯變換是基礎知識,本文詳細解釋了什麼是傅氏變換、拉氏變換。