Opencv “我对”的理解正确吗;“强度”;Lukas-Kanade的光流法?

Opencv “我对”的理解正确吗;“强度”;Lukas-Kanade的光流法?,opencv,opticalflow,Opencv,Opticalflow,从“”,它说强度是梯度。f(x),f(y)是梯度,f(t)是沿时间的类似梯度。我的困惑现在开始了。在上面的链接中,f(x)和f(y)也是导数形式,但我们不能计算沿x和y的导数,因为我们不知道同一点的位置,实际上这就是我们将在这个方法中找到的。所以我想知道它是怎么说的,既然它说f(t)是一个点随时间的梯度,那么我能假设f(t)是一个点的梯度平均值,它是由几个特定的周期收集的,并且f(x)和f(y)是每个周期收集的,f(t)梯度的平均值 例如,如果f(t)每20毫秒计算一次,并试图每100毫秒计算一

从“”,它说强度是梯度。f(x),f(y)是梯度,f(t)是沿时间的类似梯度。我的困惑现在开始了。在上面的链接中,f(x)和f(y)也是导数形式,但我们不能计算沿x和y的导数,因为我们不知道同一点的位置,实际上这就是我们将在这个方法中找到的。所以我想知道它是怎么说的,既然它说f(t)是一个点随时间的梯度,那么我能假设f(t)是一个点的梯度平均值,它是由几个特定的周期收集的,并且f(x)和f(y)是每个周期收集的,f(t)梯度的平均值

例如,如果f(t)每20毫秒计算一次,并试图每100毫秒计算一次平均值。每100ms计算一次f(x)和f(y)。我的理解正确吗


如果错了,那么f(x)、f(y)和f(t)之间的区别是什么呢?

他们假设每个像素的强度不随时间变化。基于此假设,您可以计算光流公式,并得到U和V的值,即运动矢量

设I(x,y)为像素位置(x,y)处的强度值,而不是如描述中所示,fx(x,y)为x方向上的导数,fy(x,y)为y方向上的导数,ft(x,y)为位置(x,y)处时间方向上的导数。 然而,在我们程序中的离散世界中,我们只能近似这些导数,我们称之为梯度。因此,可以使用索贝尔过滤器。或者以更简单的方式使用微分算子,即

fx(x,y)=I(x,y)-I(x-1,y)

fy(x,y)=I(x,y)-I(x,y-1)

与时间梯度类似,但现在具有前一图像的图像强度A(x,y)

ft(x,y)=I(x,y)-A(x,y)


理想情况下,在实践中,A在我之前是一帧,但在理论上,A可以从以前的更多帧中提取,但这会使ft的精度降低。

Hmm,光圈问题不是意味着没有足够的方程来解方程吗?这就是为什么lukas kanade假设“每个点的相邻像素的U,V向量不变”,并使用每个相邻像素的强度进行求解。