あなたが探しているのは「オプティカルフロー」です。これらの用語を検索すると、多数の結果が得られます。
OpenCVには、必要な処理を実行するcalcOpticalFlowFarneback()(ビデオモジュール内)と呼ばれる関数があります。C APIには、「オプティカルフローの決定」と呼ばれるHorn&Schunck(1981)による古典的な論文の実装がまだあります。
また、私が行ったこの作業をいくつかのコードとともに見ることもできます(ただし、注意してください。openclメモリコードにはまだいくつかの不思議なバグがあります。今年後半に修正バージョンをリリースします。):http:/ /lts2www.epfl.ch/people/dangelo/opticflow
OpenCVのオプティカルフロー(および私のもの;-)に加えて、完全な画像レジストレーションチェーン(主に医用画像を目的とした)については、itk.orgのITKを参照してください。
googleのおかげで見つけることができるオプティカルフローコード(matlab、C / C ++ ...)もたくさんあります。たとえば、cs.brown.edu /〜dqsun / research / software.html、gpu4visionなどです。
-編集:オプティカルフローについて-
オプティカルフローは、高密度アルゴリズムとその他のアルゴリズムの2つのファミリーに分けられます。密なアルゴリズムはピクセルごとに1つの動きベクトルを与え、密でないアルゴリズムは追跡された特徴ごとに1つのベクトルを与えます。
密集したファミリの例には、Horn-SchunckとFarneback(opencvを維持するため)、およびより一般的には、画像全体(さまざまなTV-L1フローなど)のコスト関数を最小化するアルゴリズムが含まれます。
非高密度ファミリーの例は、opencvではLucas-Kanadeと呼ばれるKLTです。
密集したファミリでは、各ピクセルの動きがほとんど自由であるため、スケールの変化に対応できます。ただし、これらのアルゴリズムは通常、線形化(モーションのテイラー展開と画像の変更)に依存しているため、大きなモーション/スケールの変更の場合に失敗する可能性があることに注意してください。さらに、変分アプローチでは、各ピクセルが全体的な結果に寄与します。したがって、1つの画像に表示されない部分は、アルゴリズムを実際のソリューションから逸脱させる可能性があります。
とにかく、これらの制限を回避するために、粗い実装から細かい実装などの手法が採用されており、これらの問題は通常、わずかな影響しか及ぼしません。残忍な照明の変化、または大きな遮蔽/非閉塞領域も、いくつかのアルゴリズムによって明示的に処理できます。たとえば、オプティカルフローフィールドと一緒に「革新」のまばらな画像を計算するこの論文を参照してください。