仿射矩陣其實並不複雜,它只是一個兩行三列的矩陣,用它乘上點座標(x,y),就能實現對點的伸縮、旋轉、平移操作。
複雜的是怎樣求仿射矩陣。
下面這篇文章講的是基本的仿射變換。
感謝原博主(似乎我和原博主是同屆畢業哈):https://blog.csdn.net/windowsyun/article/details/78158747
什麼是仿射變換?
仿射變換就是圖像的線性變換加上平移,用一幅圖表示,就是
由 image1 到 image2 的轉換經過了三個操作
1.旋轉 (線性變換)
2.縮放操作(線性變換)
3.平移 (向量加)
如果沒有了第3個平移的操作,那它就是線性變換。前兩個筆記已經整理了圖像的旋轉、縮放和平移的各個方法,接下來會介紹仿射變換的矩陣表示和使用方法。
放射變化的矩陣形式
圖像的變換要對圖像的每一個像素點進行操作,假設其中的一個像素點的座標是(x,y),我們用矩陣形式表示:
我們通常使用 2 x 3 矩陣來表示仿射變換。
矩陣 A、B 就是變換矩陣
經過仿射變換後的點的矩陣座標是T,我們已經知道放射變換就是線性變換加上平移,用矩陣表示的話就是
也可以寫成
計算可得
其中, [a00,a01;a10,a11]^T 這個矩陣,就是線性變換矩陣,即保持原點不變,對圖像實現縮放、旋轉操作,關於這一點可以看視頻:https://www.bilibili.com/video/av6731067/?p=4 (看P4課)
而 [b00;b10] 實現的是對圖像(x,y)方向的平移。