OpenCV数学基础知识

差分

一阶差分

对于一维连续或离散函数f(x),在点x处的差分定义为


\Delta f(x)=f(x+\Delta x)-f(x)

对于二维连续或离散函数f(x,y),差分定义为


\begin{aligned}
\Delta f_x(x,y)&=f(x+\Delta x,y)-f(x,y)\\
\Delta f_y(x,y)&=f(x,y+\Delta y)-f(x,y)
\end{aligned}

二阶差分

二阶差分定义为对一阶差分的差分。对于一维连续或离散函数f(x),在点x处的二阶差分定义为


\begin{aligned}
\Delta^2f(x)&=\Delta(\Delta f(x))\\
&=\Delta f(x+\Delta x)-\Delta f(x)\\
&=(f(x+\Delta x+\Delta x)-f(x+\Delta x))-(f(x+\Delta x)-f(x))\\
&=f(x+2\Delta x)-2f(x+\Delta x)+f(x)
\end{aligned}

同理,对于二维连续或离散函数f(x,y),二阶差分定义为


\begin{aligned}
\Delta^2f_x(x,y)&=f(x+2\Delta x,y)-2f(x+\Delta x,y)+f(x,y)\\
\Delta^2f_y(x,y)&=f(x,y+2\Delta y)-2f(x,y+\Delta y)+f(x,y)
\end{aligned}

高阶差分

对于任意阶差分,其系数满足杨辉三角的系数,只需将偶数列取负值即可。

微分

微分是差分的点差趋近于0的特殊形式。对于一维连续函数f(x),在点x处的微分定义为


df(x)=\lim_{\Delta x\rightarrow0}f(x+\Delta x)-f(x)

二阶微分为


d^2f(x)=\lim_{\Delta x\rightarrow0}f(x+2\Delta x)-2f(x+\Delta x)+f(x)

在离散情况下,由于关于x,y的差分\Delta x, \Delta y无法趋近于0,因此一般用\Delta x=\Delta y=1,也就是距离为1的差分来近似表示微分。 对于一维离散函数f(x),在点x处的微分定义为


df(x)\approx f(x+1)-f(x)

二阶微分为


d^2f(x)\approx f(x+2)-2f(x+1)+f(x)

导数

对于一维连续函数f(x),在点x处的导数定义为f(x)的差分与x的差分在\Delta x\rightarrow0时的极限值:


f'(x)=\frac{df(x)}{dx}=\lim_{\Delta x\rightarrow0}\frac{f(x+\Delta x)-f(x)}{\Delta x}

二阶导数为


f''(x)=\frac{d^2f(x)}{dx^2}=\lim_{\Delta x\rightarrow0}\frac{f(x+2\Delta x)-2f(x+\Delta x)+f(x)}{(\Delta x)^2}

在OpenCV的离散情况下,由于关于x,y的差分\Delta x, \Delta y无法趋近于0,因此一般用\Delta x=\Delta y=1,也就是微分来近似计算导数。 即对于一维离散函数f(x),导数定义为


f'(x)\approx df(x)=f(x+1)-f(x)

二阶导数为


f''(x)\approx d^2f(x)=f(x+2)-2f(x+1)+f(x)

偏导数

对于二维连续或离散函数f(x,y),偏导数定义为f(x,y)的在x方向或y方向的差分与xy的差分在\Delta x\rightarrow0\Delta y\rightarrow0时的极限值:


\begin{aligned}
G_x(x,y)&=\frac{\partial f(x,y)}{\partial x}=\lim_{\Delta x\rightarrow0}\frac{f(x+\Delta x,y)-f(x,y)}{\Delta x}\\
G_y(x,y)&=\frac{\partial f(x,y)}{\partial y}=\lim_{\Delta y\rightarrow0}\frac{f(x,y+\Delta y)-f(x,y)}{\Delta y}
\end{aligned}

二阶偏导数为


\begin{aligned}
\frac{\partial^2f(x,y)}{\partial x^2}&=\lim_{\Delta x\rightarrow0}\frac{f(x+2\Delta x,y)-2f(x+\Delta x,y)+f(x,y)}{(\Delta x)^2}\\
\frac{\partial^2f(x,y)}{\partial y^2}&=\lim_{\Delta y\rightarrow0}\frac{f(x,y+2\Delta y)-2f(x,y+\Delta y)+f(x,y)}{(\Delta y)^2}
\end{aligned}

除此之外,还有二阶混合偏导数,计算遵循从右到左的顺序:


\begin{aligned}
\frac{\partial^2f(x,y)}{\partial x\partial y}&=\frac{\partial}{\partial x}(\frac{\partial f(x,y)}{\partial y})\\
&=\frac{\partial}{\partial x}(\lim_{\Delta y\rightarrow0}\frac{f(x,y+\Delta y)-f(x,y)}{\Delta y})\\
&=\lim_{\Delta x\rightarrow0}\frac{\lim_{\Delta y\rightarrow0}\frac{f(x+\Delta x,y+\Delta y)-f(x+\Delta x,y)}{\Delta y}-\frac{f(x,y+\Delta y)-f(x,y)}{\Delta y}}{\Delta x}\\
&=\lim_{\Delta x\rightarrow0}\lim_{\Delta y\rightarrow0}\frac{f(x+\Delta x,y+\Delta y)-f(x+\Delta x,y)-f(x,y+\Delta y)+f(x,y)}{\Delta x\Delta y}\\
\frac{\partial^2f(x,y)}{\partial y\partial x}&=\lim_{\Delta y\rightarrow0}\lim_{\Delta x\rightarrow0}\frac{f(x+\Delta x,y+\Delta y)-f(x+\Delta x,y)-f(x,y+\Delta y)+f(x,y)}{\Delta x\Delta y}
\end{aligned}

上式中的区别为取极限的顺序,一个是先对\Delta x取极限,另一个是先对\Delta y取极限。

对于二维离散函数f(x,y),偏导数定义为


\begin{aligned}
G_x=\frac{\partial f(x,y)}{\partial x}&\approx df_x(x,y)=f(x+1,y)-f(x,y)\\
G_y=\frac{\partial f(x,y)}{\partial y}&\approx df_y(x,y)=f(x,y+1)-f(x,y)
\end{aligned}

二阶偏导数为


\begin{aligned}
\frac{\partial^2f(x,y)}{\partial x^2}&\approx d^2f_x(x,y)=f(x+2,y)-2f(x+1,y)+f(x,y)\\
\frac{\partial^2f(x,y)}{\partial y^2}&\approx d^2f_y(x,y)=f(x,y+2)-2f(x,y+1)+f(x,y)\\
\frac{\partial^2f(x,y)}{\partial x\partial y}\approx\frac{\partial^2f(x,y)}{\partial y\partial x}&\approx f(x+1,y+1)-f(x+1,y)-f(x,y+1)+f(x,y)\\
\end{aligned}

梯度

一阶梯度

在二维图像f(x,y)上,一阶导数由f(x,y)x方向和y方向的偏导数计算出的梯度来表示。梯度\nabla f是关于f的向量函数:


G(x,y)=\nabla f(x,y)=\begin{bmatrix}
\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y}
\end{bmatrix}=\begin{bmatrix}
G_x & G_y
\end{bmatrix}

梯度的幅值为


mag(G(x,y))=\sqrt{(\frac{\partial f}{\partial x})^2+(\frac{\partial f}{\partial y})^2}=\sqrt{G_x^2+G_y^2}

为方便计算,也常用近似公式


mag(G(x,y))\approx|\frac{\partial f}{\partial x}|+|\frac{\partial f}{\partial y}|=|G_x|+|G_y|

梯度的方向为


\phi(G(x,y))=\arctan|\frac{G_y}{G_x}|

二阶梯度

二维空间中的二阶梯度是一个2\times2矩阵,称为海森矩阵(Hessian matrix),定义为:


\Delta^2f(x,y)=\begin{bmatrix}
\frac{\partial^2f}{\partial x^2} & \frac{\partial^2f}{\partial x\partial y}\\
\frac{\partial^2f}{\partial y\partial x} & \frac{\partial^2f}{\partial y^2}
\end{bmatrix}

卷积

对于一维连续可积函数f(x),g(x),在实数域R上的卷积为


(f\cdot g)(x)=\int_{-\infty}^{\infty}f(\tau)g(x-\tau)d\tau

合理推广,对于二维连续可积函数f(x,y),g(x,y),在实数域R^2上的卷积为


(f\cdot g)(x,y)=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}f(\tau_x,\tau_y)g(x-\tau_x,y-\tau_y)d\tau_xd\tau_y

在离散有界情况下,对于一维离散函数f(x),g(x),卷积定义为


(f\cdot g)(x)=\sum_{x_0=a}^bf(x_0)g(x-x_0)

对于二维离散函数f(x,y),g(x,y),卷积定义为


(f\cdot g)(x,y)=\sum_{x_0=a}^b\sum_{y_0=c}^d f(x_0,y_0)g(x-x_0,y-y_0)

全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务