矩阵的加、减法
两个矩阵必须规模相同
[ 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 ) ;
矩阵的线性变换
矩阵的滤波
图像处理算法部分