1. 程式人生 > >c#中的矩陣變換 MatrixTransform

c#中的矩陣變換 MatrixTransform

在大學的時候很討厭上高數和線代 訊號與系統的課程,總是感覺枯燥乏味,都是公式,沒有實際應用的意義。那個時候就是 too young  too simple,工作中才會遇到實際問題用哪些知識來解答,包括現在火的一塌糊塗的AI,入門的基本就是要會點線代。很多實際問題都是需要數學模型,像作分析和統計的一般都會用到高斯擬合、多項式擬合、最小二乘法等。做影象處理和解析的一般就會用到矩陣了,下面來說一說矩陣的一些基本用法

1、影象縮放


如果我們把前面[1,1]當做一個點(1,1),乘上後面的矩陣後相當於Y座標放大了2倍


同樣,這個乘法相當於把X座標放大了2倍

如果一個矩陣是


M11和M22是可以用來對座標進行縮放

2、影象旋轉

想這個矩陣


就相當於Y座標順時針旋轉了90度,所以矩陣的M11和M22可以用來對座標進行旋轉

3、影象平移


想上面的矩陣加法就相當於點(1,1)在X軸向右平移了一個單位,所以如果一個點加上一個[Offx,Offy]相當於在座標系內向X平移Offx,向Y平移Offy

4、仿射變換

如果對一個點先進行縮放旋轉操作後在進行平移,這樣的變換稱為仿射變換,用矩陣

表示。

如果是一個點(x,y)乘上一個3*3的矩陣是沒辦法計算的,可以把點(x,y)寫成(x,y,1)再乘上面的矩陣就是相當於對點(x,y)先進行縮放再進行平移。所以在MatrixTransform只有6個引數