矩陣的加、減法
兩個矩陣必須規模相同
[ 1 2 3 4 5 6 ] + [ 1 2 3 4 5 6 ] = [ 1 + 1 2 + 2 3 + 3 4 + 4 5 + 5 6 + 6 ] = [ 2 4 6 8 10 12 ] \begin{bmatrix}1&2\\3&4\\5&6\end{bmatrix}+\begin{bmatrix}1&2\\3&4\\5&6\end{bmatrix}=\begin{bmatrix}1+1&2+2\\3+3&4+4\\5+5&6+6\end{bmatrix}=\begin{bmatrix}2&4\\6&8\\10&12\end{bmatrix} ⎣ ⎡ 1 3 5 2 4 6 ⎦ ⎤ + ⎣ ⎡ 1 3 5 2 4 6 ⎦ ⎤ = ⎣ ⎡ 1 + 1 3 + 3 5 + 5 2 + 2 4 + 4 6 + 6 ⎦ ⎤ = ⎣ ⎡ 2 6 1 0 4 8 1 2 ⎦ ⎤
矩陣的直加
兩個不同規模的矩陣可以直加,組合後的矩陣空位用0補位
[ 1 2 3 4 ] ⨁ [ 1 2 3 4 5 6 ] = [ 1 2 0 0 3 4 0 0 0 0 1 2 0 0 3 4 0 0 5 6 ] \begin{bmatrix}1&2\\3&4\end{bmatrix}\bigoplus\begin{bmatrix}1&2\\3&4\\5&6\end{bmatrix}=\begin{bmatrix}1&2&0&0\\3&4&0&0\\0&0&1&2\\0&0&3&4\\0&0&5&6\end{bmatrix} [ 1 3 2 4 ] ⨁ ⎣ ⎡ 1 3 5 2 4 6 ⎦ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 3 0 0 0 2 4 0 0 0 0 0 1 3 5 0 0 2 4 6 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
矩陣的乘除法
幾何意義:A x B = 結合兩種操作的操作集合。
1、當矩陣A的列數(column)等於矩陣B的行數(row)時,A與B可以相乘。
2、矩陣C的行數等於矩陣A的行數,C的列數等於B的列數。
3、乘積C的第m行第n列的元素等於矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和
A = [ a 1 a 2 a 3 a 4 a 5 a 6 ] B = [ b 1 b 2 b 3 b 4 b 5 b 6 ] A = \begin{bmatrix}a1&a2&a3\\a4&a5&a6\end{bmatrix}B = \begin{bmatrix}b1&b2\\b3&b4\\b5&b6\end{bmatrix} A = [ a 1 a 4 a 2 a 5 a 3 a 6 ] B = ⎣ ⎡ b 1 b 3 b 5 b 2 b 4 b 6 ⎦ ⎤
C = A B = [ a 1 b 1 + a 2 b 3 + a 3 b 5 a 1 b 2 + a 2 b 4 + a 3 b 6 a 4 b 1 + a 5 b 3 + a 6 b 5 a 4 b 2 + a 5 b 4 + a 6 b 6 ] C=AB=\begin{bmatrix}a1b1+a2b3+a3b5&a1b2+a2b4+a3b6\\a4b1+a5b3+a6b5&a4b2+a5b4+a6b6\end{bmatrix} C = A B = [ a 1 b 1 + a 2 b 3 + a 3 b 5 a 4 b 1 + a 5 b 3 + a 6 b 5 a 1 b 2 + a 2 b 4 + a 3 b 6 a 4 b 2 + a 5 b 4 + a 6 b 6 ]
矩陣的平移
設 x , y 爲 原 坐 標 , d x 、 d y 爲 x y 坐 標 的 移 動 量 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 設x,y爲原座標,dx、dy爲xy座標的移動量,則x1、y1爲變換後的新座標 設 x , y 爲 原 坐 標 , d x 、 d y 爲 x y 坐 標 的 移 動 量 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 【公式】
( x 1 y 1 ) = ( d x d y ) + ( x y ) \dbinom{x_{1}}{y_{1}}=\dbinom{dx}{dy}+\dbinom{x}{y} ( y 1 x 1 ) = ( d y d x ) + ( y x )
【代碼的實現】
x1 = x + dx;
y1 = y + dy;
空間矩陣的旋轉
二維空間
設 x , y 爲 原 坐 標 , θ 爲 旋 轉 角 度 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 設x,y爲原座標,\theta爲旋轉角度,則x1、y1爲變換後的新座標 設 x , y 爲 原 坐 標 , θ 爲 旋 轉 角 度 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 【公式】
( x 1 y 1 ) = ( c o s θ − s i n θ s i n θ c o s θ ) × ( x y ) \dbinom{x_{1}}{y_{1}}=\begin{pmatrix}cos\theta&-sin\theta\\sin\theta& cos\theta\end{pmatrix}\times\dbinom{x}{y} ( y 1 x 1 ) = ( c o s θ s i n θ − s i n θ c o s θ ) × ( y x )
【代碼的實現】
x1 = x * cos ( angle) - y * sin ( angle) ;
y1 = x * sin ( angle) + y * cos ( angle) ;
三維空間
設 x , y 爲 原 坐 標 , θ 爲 旋 轉 角 度 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 設x,y爲原座標,\theta爲旋轉角度,則x1、y1爲變換後的新座標 設 x , y 爲 原 坐 標 , θ 爲 旋 轉 角 度 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 【公式】
( x 1 y 1 ) = ( c o s θ − s i n θ s i n θ c o s θ ) × ( x y ) \dbinom{x_{1}}{y_{1}}=\begin{pmatrix}cos\theta&-sin\theta\\sin\theta& cos\theta\end{pmatrix}\times\dbinom{x}{y} ( y 1 x 1 ) = ( c o s θ s i n θ − s i n θ c o s θ ) × ( y x )
【代碼的實現】
x1 = x * cos ( angle) - y * sin ( angle) ;
y1 = x * sin ( angle) + y * cos ( angle) ;
矩陣的縮放
設 x , y 爲 原 坐 標 , S x 、 S y 爲 縮 放 倍 數 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 設x,y爲原座標,S_{x}、S_{y}爲縮放倍數,則x1、y1爲變換後的新座標 設 x , y 爲 原 坐 標 , S x 、 S y 爲 縮 放 倍 數 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 【公式】
( x 1 y 1 ) = ( S x 0 0 S y ) × ( x y ) \dbinom{x_{1}}{y_{1}}=\begin{pmatrix}S_{x}&0\\0& S_{y}\end{pmatrix}\times\dbinom{x}{y} ( y 1 x 1 ) = ( S x 0 0 S y ) × ( y x )
【代碼的實現】
x1 = x * size_x + y * 0 ;
y1 = x * 0 + y * size_y;
矩陣的切變
設 x , y 爲 原 坐 標 , K 爲 切 變 系 數 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 。 設x,y爲原座標,K爲切變係數,則x1、y1爲變換後的新座標。 設 x , y 爲 原 坐 標 , K 爲 切 變 系 數 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 。 【公式】
第一種,x方向切變:
( x 1 y 1 ) = ( 1 k 0 1 ) × ( x y ) \dbinom{x_{1}}{y_{1}}=\begin{pmatrix}1&k\\0&1\end{pmatrix}\times\dbinom{x}{y} ( y 1 x 1 ) = ( 1 0 k 1 ) × ( y x )
第二種,y方向切變:
( x 1 y 1 ) = ( 1 0 k 1 ) × ( x y ) \dbinom{x_{1}}{y_{1}}=\begin{pmatrix}1&0\\k&1\end{pmatrix}\times\dbinom{x}{y} ( y 1 x 1 ) = ( 1 k 0 1 ) × ( y x )
【代碼的實現】
x1 = x * 1 + y * k;
y1 = x * 0 + y * 1
x1 = x * 1 + y * 0 ;
y1 = x * k + y * 1
矩陣的反射(?)
設 x , y 爲 原 坐 標 , u x , u y 爲 直 線 方 向 的 單 位 向 量 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 設x,y爲原座標,ux,uy爲直線方向的單位向量,則x1、y1爲變換後的新座標 設 x , y 爲 原 坐 標 , u x , u y 爲 直 線 方 向 的 單 位 向 量 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 【公式】
( x 1 y 1 ) = ( 2 u x 2 − 1 2 u x u y 2 u x u y 2 u y 2 − 1 ) × ( x y ) \dbinom{x_{1}}{y_{1}}=\begin{pmatrix}2u_{x}^2-1&2u_{x}u_{y}\\2u_{x}u_{y}&2u_{y}^2-1\end{pmatrix}\times\dbinom{x}{y} ( y 1 x 1 ) = ( 2 u x 2 − 1 2 u x u y 2 u x u y 2 u y 2 − 1 ) × ( y x )
【代碼的實現】
x1 = x * 2 * pow ( ux, 2 ) - 1 + y * 2 * ux * uy;
y1 = x * 2 * ux * uy + y * 2 * pow ( uy, 2 ) - 1 ;
矩陣的正投影
設 x , y 爲 原 坐 標 , u x , u y 爲 直 線 方 向 的 單 位 向 量 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 設x,y爲原座標,ux,uy爲直線方向的單位向量,則x1、y1爲變換後的新座標 設 x , y 爲 原 坐 標 , u x , u y 爲 直 線 方 向 的 單 位 向 量 , 則 x 1 、 y 1 爲 變 換 後 的 新 坐 標 【公式】
( x 1 y 1 ) = ( u x 2 u x u y u x u y u y 2 ) × ( x y ) \dbinom{x_{1}}{y_{1}}=\begin{pmatrix}u_{x}^2&u_{x}u_{y}\\u_{x}u_{y}&u_{y}^2\end{pmatrix}\times\dbinom{x}{y} ( y 1 x 1 ) = ( u x 2 u x u y u x u y u y 2 ) × ( y x )
【代碼的實現】
x1 = x * pow ( ux, 2 ) + y * ux * uy;
y1 = x * ux * uy + y * pow ( uy, 2 ) ;
矩陣的線性變換
矩陣的濾波
圖像處理算法部分