差分

一阶差分

对于一维连续或离散函数 f ( x ) f(x) f(x),在点 x x x处的差分定义为
Δ f ( x ) = f ( x + Δ x ) − f ( x ) \Delta f(x)=f(x+\Delta x)-f(x) Δf(x)=f(x+Δx)f(x)
对于二维连续或离散函数 f ( x , y ) f(x,y) f(x,y),差分定义为
Δ f x ( x , y ) = f ( x + Δ x , y ) − f ( x , y ) Δ f y ( x , y ) = f ( x , y + Δ y ) − 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} Δfx(x,y)Δfy(x,y)=f(x+Δx,y)f(x,y)=f(x,y+Δy)f(x,y)

二阶差分

二阶差分定义为对一阶差分的差分。
对于一维连续或离散函数 f ( x ) f(x) f(x),在点 x x x处的二阶差分定义为
Δ 2 f ( x ) = Δ ( Δ f ( x ) ) = Δ f ( x + Δ x ) − Δ f ( x ) = ( f ( x + Δ x + Δ x ) − f ( x + Δ x ) ) − ( f ( x + Δ x ) − f ( x ) ) = f ( x + 2 Δ x ) − 2 f ( x + Δ x ) + f ( 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} Δ2f(x)=Δ(Δf(x))=Δf(x+Δx)Δf(x)=(f(x+Δx+Δx)f(x+Δx))(f(x+Δx)f(x))=f(x+x)2f(x+Δx)+f(x)
同理,对于二维连续或离散函数 f ( x , y ) f(x,y) f(x,y),二阶差分定义为
Δ 2 f x ( x , y ) = f ( x + 2 Δ x , y ) − 2 f ( x + Δ x , y ) + f ( x , y ) Δ 2 f y ( x , y ) = f ( x , y + 2 Δ y ) − 2 f ( x , y + Δ y ) + 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} Δ2fx(x,y)Δ2fy(x,y)=f(x+x,y)2f(x+Δx,y)+f(x,y)=f(x,y+y)2f(x,y+Δy)+f(x,y)

高阶差分

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

微分

微分是差分的点差趋近于0的特殊形式。
对于一维连续函数 f ( x ) f(x) f(x),在点 x x x处的微分定义为
d f ( x ) = lim ⁡ Δ x → 0 f ( x + Δ x ) − f ( x ) df(x)=\lim_{\Delta x\rightarrow0}f(x+\Delta x)-f(x) df(x)=Δx0limf(x+Δx)f(x)
二阶微分为
d 2 f ( x ) = lim ⁡ Δ x → 0 f ( x + 2 Δ x ) − 2 f ( x + Δ x ) + f ( x ) d^2f(x)=\lim_{\Delta x\rightarrow0}f(x+2\Delta x)-2f(x+\Delta x)+f(x) d2f(x)=Δx0limf(x+x)2f(x+Δx)+f(x)
在离散情况下,由于关于 x , y x,y x,y的差分 Δ x , Δ y \Delta x, \Delta y Δx,Δy无法趋近于0,因此一般用 Δ x = Δ y = 1 \Delta x=\Delta y=1 Δx=Δy=1,也就是距离为1的差分来近似表示微分。
对于一维离散函数 f ( x ) f(x) f(x),在点 x x x处的微分定义为
d f ( x ) ≈ f ( x + 1 ) − f ( x ) df(x)\approx f(x+1)-f(x) df(x)f(x+1)f(x)
二阶微分为
d 2 f ( x ) ≈ f ( x + 2 ) − 2 f ( x + 1 ) + f ( x ) d^2f(x)\approx f(x+2)-2f(x+1)+f(x) d2f(x)f(x+2)2f(x+1)+f(x)

导数

对于一维连续函数 f ( x ) f(x) f(x),在点 x x x处的导数定义为 f ( x ) f(x) f(x)的差分与 x x x的差分在 Δ x → 0 \Delta x\rightarrow0 Δx0时的极限值:
f ′ ( x ) = d f ( x ) d x = lim ⁡ Δ x → 0 f ( x + Δ x ) − f ( x ) Δ x f'(x)=\frac{df(x)}{dx}=\lim_{\Delta x\rightarrow0}\frac{f(x+\Delta x)-f(x)}{\Delta x} f(x)=dxdf(x)=Δx0limΔxf(x+Δx)f(x)
二阶导数为
f ′ ′ ( x ) = d 2 f ( x ) d x 2 = lim ⁡ Δ x → 0 f ( x + 2 Δ x ) − 2 f ( x + Δ x ) + f ( x ) ( Δ x ) 2 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} f′′(x)=dx2d2f(x)=Δx0lim(Δx)2f(x+x)2f(x+Δx)+f(x)
在OpenCV的离散情况下,由于关于 x , y x,y x,y的差分 Δ x , Δ y \Delta x, \Delta y Δx,Δy无法趋近于0,因此一般用 Δ x = Δ y = 1 \Delta x=\Delta y=1 Δx=Δy=1,也就是微分来近似计算导数。
即对于一维离散函数 f ( x ) f(x) f(x),导数定义为
f ′ ( x ) ≈ d f ( x ) = f ( x + 1 ) − f ( x ) f'(x)\approx df(x)=f(x+1)-f(x) f(x)df(x)=f(x+1)f(x)
二阶导数为
f ′ ′ ( x ) ≈ d 2 f ( x ) = f ( x + 2 ) − 2 f ( x + 1 ) + f ( x ) f''(x)\approx d^2f(x)=f(x+2)-2f(x+1)+f(x) f′′(x)d2f(x)=f(x+2)2f(x+1)+f(x)

偏导数

对于二维连续或离散函数 f ( x , y ) f(x,y) f(x,y),偏导数定义为 f ( x , y ) f(x,y) f(x,y)的在 x x x方向或 y y y方向的差分与 x x x y y y的差分在 Δ x → 0 \Delta x\rightarrow0 Δx0 Δ y → 0 \Delta y\rightarrow0 Δy0时的极限值:
G x ( x , y ) = ∂ f ( x , y ) ∂ x = lim ⁡ Δ x → 0 f ( x + Δ x , y ) − f ( x , y ) Δ x G y ( x , y ) = ∂ f ( x , y ) ∂ y = lim ⁡ Δ y → 0 f ( x , y + Δ y ) − f ( x , y ) Δ y \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} Gx(x,y)Gy(x,y)=xf(x,y)=Δx0limΔxf(x+Δx,y)f(x,y)=yf(x,y)=Δy0limΔyf(x,y+Δy)f(x,y)
二阶偏导数为
∂ 2 f ( x , y ) ∂ x 2 = lim ⁡ Δ x → 0 f ( x + 2 Δ x , y ) − 2 f ( x + Δ x , y ) + f ( x , y ) ( Δ x ) 2 ∂ 2 f ( x , y ) ∂ y 2 = lim ⁡ Δ y → 0 f ( x , y + 2 Δ y ) − 2 f ( x , y + Δ y ) + f ( x , y ) ( Δ y ) 2 \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} x22f(x,y)y22f(x,y)=Δx0lim(Δx)2f(x+x,y)2f(x+Δx,y)+f(x,y)=Δy0lim(Δy)2f(x,y+y)2f(x,y+Δy)+f(x,y)
除此之外,还有二阶混合偏导数,计算遵循从右到左的顺序:
∂ 2 f ( x , y ) ∂ x ∂ y = ∂ ∂ x ( ∂ f ( x , y ) ∂ y ) = ∂ ∂ x ( lim ⁡ Δ y → 0 f ( x , y + Δ y ) − f ( x , y ) Δ y ) = lim ⁡ Δ x → 0 lim ⁡ Δ y → 0 f ( x + Δ x , y + Δ y ) − f ( x + Δ x , y ) Δ y − f ( x , y + Δ y ) − f ( x , y ) Δ y Δ x = lim ⁡ Δ x → 0 lim ⁡ Δ y → 0 f ( x + Δ x , y + Δ y ) − f ( x + Δ x , y ) − f ( x , y + Δ y ) + f ( x , y ) Δ x Δ y ∂ 2 f ( x , y ) ∂ y ∂ x = lim ⁡ Δ y → 0 lim ⁡ Δ x → 0 f ( x + Δ x , y + Δ y ) − f ( x + Δ x , y ) − f ( x , y + Δ y ) + f ( x , y ) Δ x Δ y \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} xy2f(x,y)yx2f(x,y)=x(yf(x,y))=x(Δy0limΔyf(x,y+Δy)f(x,y))=Δx0limΔxlimΔy0Δyf(x+Δx,y+Δy)f(x+Δx,y)Δyf(x,y+Δy)f(x,y)=Δx0limΔy0limΔxΔyf(x+Δx,y+Δy)f(x+Δx,y)f(x,y+Δy)+f(x,y)=Δy0limΔx0limΔxΔyf(x+Δx,y+Δy)f(x+Δx,y)f(x,y+Δy)+f(x,y)
上式中的区别为取极限的顺序,一个是先对 Δ x \Delta x Δx取极限,另一个是先对 Δ y \Delta y Δy取极限。

对于二维离散函数 f ( x , y ) f(x,y) f(x,y),偏导数定义为
G x = ∂ f ( x , y ) ∂ x ≈ d f x ( x , y ) = f ( x + 1 , y ) − f ( x , y ) G y = ∂ f ( x , y ) ∂ y ≈ d f y ( x , y ) = f ( x , y + 1 ) − 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} Gx=xf(x,y)Gy=yf(x,y)dfx(x,y)=f(x+1,y)f(x,y)dfy(x,y)=f(x,y+1)f(x,y)
二阶偏导数为
∂ 2 f ( x , y ) ∂ x 2 ≈ d 2 f x ( x , y ) = f ( x + 2 , y ) − 2 f ( x + 1 , y ) + f ( x , y ) ∂ 2 f ( x , y ) ∂ y 2 ≈ d 2 f y ( x , y ) = f ( x , y + 2 ) − 2 f ( x , y + 1 ) + f ( x , y ) ∂ 2 f ( x , y ) ∂ x ∂ y ≈ ∂ 2 f ( x , y ) ∂ y ∂ x ≈ f ( x + 1 , y + 1 ) − f ( x + 1 , y ) − f ( x , y + 1 ) + f ( x , y ) \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} x22f(x,y)y22f(x,y)xy2f(x,y)yx2f(x,y)d2fx(x,y)=f(x+2,y)2f(x+1,y)+f(x,y)d2fy(x,y)=f(x,y+2)2f(x,y+1)+f(x,y)f(x+1,y+1)f(x+1,y)f(x,y+1)+f(x,y)

梯度

一阶梯度

在二维图像 f ( x , y ) f(x,y) f(x,y)上,一阶导数由 f ( x , y ) f(x,y) f(x,y) x x x方向和 y y y方向的偏导数计算出的梯度来表示。梯度 ∇ f \nabla f f是关于 f f f的向量函数:
G ( x , y ) = ∇ f ( x , y ) = [ ∂ f ∂ x ∂ f ∂ y ] = [ G x G y ] 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} G(x,y)=f(x,y)=[xfyf]=[GxGy]
梯度的幅值为
m a g ( G ( x , y ) ) = ( ∂ f ∂ x ) 2 + ( ∂ f ∂ y ) 2 = G x 2 + G y 2 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))=(xf)2+(yf)2 =Gx2+Gy2
为方便计算,也常用近似公式
m a g ( G ( x , y ) ) ≈ ∣ ∂ f ∂ x ∣ + ∣ ∂ f ∂ y ∣ = ∣ G x ∣ + ∣ G y ∣ mag(G(x,y))\approx|\frac{\partial f}{\partial x}|+|\frac{\partial f}{\partial y}|=|G_x|+|G_y| mag(G(x,y))xf+yf=Gx+Gy
梯度的方向为
ϕ ( G ( x , y ) ) = arctan ⁡ ∣ G y G x ∣ \phi(G(x,y))=\arctan|\frac{G_y}{G_x}| ϕ(G(x,y))=arctanGxGy

二阶梯度

二维空间中的二阶梯度是一个 2 × 2 2\times2 2×2矩阵,称为海森矩阵(Hessian matrix),定义为:
Δ 2 f ( x , y ) = [ ∂ 2 f ∂ x 2 ∂ 2 f ∂ x ∂ y ∂ 2 f ∂ y ∂ x ∂ 2 f ∂ y 2 ] \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} Δ2f(x,y)=[x22fyx2fxy2fy22f]

卷积

对于一维连续可积函数 f ( x ) , g ( x ) f(x),g(x) f(x),g(x),在实数域 R R R上的卷积为
( f ⋅ g ) ( x ) = ∫ − ∞ ∞ f ( τ ) g ( x − τ ) d τ (f\cdot g)(x)=\int_{-\infty}^{\infty}f(\tau)g(x-\tau)d\tau (fg)(x)=f(τ)g(xτ)dτ
合理推广,对于二维连续可积函数 f ( x , y ) , g ( x , y ) f(x,y),g(x,y) f(x,y),g(x,y),在实数域 R 2 R^2 R2上的卷积为
( f ⋅ g ) ( x , y ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( τ x , τ y ) g ( x − τ x , y − τ y ) d τ x d τ y (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 (fg)(x,y)=f(τx,τy)g(xτx,yτy)dτxdτy
在离散有界情况下,对于一维离散函数 f ( x ) , g ( x ) f(x),g(x) f(x),g(x),卷积定义为
( f ⋅ g ) ( x ) = ∑ x 0 = a b f ( x 0 ) g ( x − x 0 ) (f\cdot g)(x)=\sum_{x_0=a}^bf(x_0)g(x-x_0) (fg)(x)=x0=abf(x0)g(xx0)
对于二维离散函数 f ( x , y ) , g ( x , y ) f(x,y),g(x,y) f(x,y),g(x,y),卷积定义为
( f ⋅ g ) ( x , y ) = ∑ x 0 = a b ∑ y 0 = c d f ( x 0 , y 0 ) g ( x − x 0 , y − y 0 ) (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) (fg)(x,y)=x0=aby0=cdf(x0,y0)g(xx0,yy0)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐