LKTアルゴリズムhereのMatlab実装が見つかりました。これは輝度定数式に基づいています。Lukas Kanadeオプティカルフロー:数学を理解する
このアルゴリズムは、画像を適切な2x2水平および垂直エッジ勾配演算子で畳み込むことによって、x方向およびy方向の画像勾配を計算します。
古典文献の輝度不変方程式は、2つの連続するフレーム間の差を右側に示しています。
ただし、前述のリンクで参照される実装では、右側が畳み込みの違いです。なぜIt_mは単にのように計算することができませんでした
It_m = conv2(im1,[1,1;1,1]) + conv2(im2,[-1,-1;-1,-1]);
:あなたが述べたように
it_m = im1 - im2;
'conv2(x、[1,1; 1,1])'が 'x'と違っていることを確認するのに少し時間がかかります。 – MBaz
あなたはこの行を参照していますか? It_m = conv2(im1、ones(2)、 'valid')+ conv2(im2、-ones(2)、 'valid'); これは単なる2D空間スムーザーであり、結果として得られるIt_mがIx_mとIy_m行列と同じ大きさであることを保証します(2x2カーネルと "有効"オプションでconv2で処理されるためです)。 –
@MBaz私は彼の混乱は、xとは異なるconv2(x、[1,1; 1,1])についてだとは思わない。私はその疑問がなぜその畳み込みを使用するのかというだけでなく、2つの画像フレームにわたって画素ごとに時間微分を計算するのではないと考えています。 –