LK光流算法公式可以参考https://blog.youkuaiyun.com/longlovefilm/article/details/79824723
opencv光流demo https://blog.youkuaiyun.com/codedoctor/article/details/79175683
https://blog.youkuaiyun.com/smuevian/article/details/72453102
https://blog.youkuaiyun.com/wolfcsharp/article/details/85345050 公式整理
具体代码实现是:
Im.copyData(Im1); //把输入的两帧图像合并为一帧。从而后面进行梯度计算。
Im.Multiplywith(0.4);
Im.Add(Im2,0.6);
Im.dx(imdx,true); //计算当前点灰度对x方向的导数,实现我们一般采用图像滤波来进行
Im.dy(imdy,true);//计算当前点灰度对y方向的导数,实现我们一般采用图像滤波来进行
imdt.Subtract(Im2,Im1);//两个方向的梯度差值来代替。
// compute du
sigma1 += imdxy.data()[offset]dv.data()[offset];
du.data()[offset] = (1-omega)du.data()[offset] + omega/(imdx2.data()[offset] + alpha0.05 + coeff)(imdtdx.data()[offset] - sigma1);
// compute dv
sigma2 += imdxy.data()[offset]du.data()[offset];
dv.data()[offset] = (1-omega)dv.data()[offset] + omega/(imdy2.data()[offset] + alpha0.05 + coeff)(imdtdy.data()[offset] - sigma2);