OpenCV数学基础知识
差分
一阶差分
对于一维连续或离散函数
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+2Δ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+2Δx,y)−2f(x+Δx,y)+f(x,y)=f(x,y+2Δ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)=Δx→0limf(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)=Δx→0limf(x+2Δ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
Δx→0时的极限值:
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)=Δx→0limΔ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)=Δx→0lim(Δx)2f(x+2Δ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
Δx→0和
Δ
y
→
0
\Delta y\rightarrow0
Δy→0时的极限值:
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)=∂x∂f(x,y)=Δx→0limΔxf(x+Δx,y)−f(x,y)=∂y∂f(x,y)=Δy→0limΔ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}
∂x2∂2f(x,y)∂y2∂2f(x,y)=Δx→0lim(Δx)2f(x+2Δx,y)−2f(x+Δx,y)+f(x,y)=Δy→0lim(Δy)2f(x,y+2Δ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}
∂x∂y∂2f(x,y)∂y∂x∂2f(x,y)=∂x∂(∂y∂f(x,y))=∂x∂(Δy→0limΔyf(x,y+Δy)−f(x,y))=Δx→0limΔxlimΔy→0Δyf(x+Δx,y+Δy)−f(x+Δx,y)−Δyf(x,y+Δy)−f(x,y)=Δx→0limΔy→0limΔxΔyf(x+Δx,y+Δy)−f(x+Δx,y)−f(x,y+Δy)+f(x,y)=Δy→0limΔx→0limΔ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=∂x∂f(x,y)Gy=∂y∂f(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}
∂x2∂2f(x,y)∂y2∂2f(x,y)∂x∂y∂2f(x,y)≈∂y∂x∂2f(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)=[∂x∂f∂y∂f]=[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))=(∂x∂f)2+(∂y∂f)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))≈∣∂x∂f∣+∣∂y∂f∣=∣Gx∣+∣Gy∣
梯度的方向为
ϕ
(
G
(
x
,
y
)
)
=
arctan
∣
G
y
G
x
∣
\phi(G(x,y))=\arctan|\frac{G_y}{G_x}|
ϕ(G(x,y))=arctan∣GxGy∣
二阶梯度
二维空间中的二阶梯度是一个
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)=[∂x2∂2f∂y∂x∂2f∂x∂y∂2f∂y2∂2f]
卷积
对于一维连续可积函数
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
(f⋅g)(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
(f⋅g)(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)
(f⋅g)(x)=x0=a∑bf(x0)g(x−x0)
对于二维离散函数
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)
(f⋅g)(x,y)=x0=a∑by0=c∑df(x0,y0)g(x−x0,y−y0)
更多推荐
所有评论(0)