私はC++とopenframeworksにかなり慣れていません。LucasKanadeテクニックを使用してオブジェクトを操作することから始めています。私はオブジェクトを押しのけることにある程度成功していますが、残念ながら、オブジェクトを適切に回転させる方法がわからず、回転運動がいつ発生しているかを検出することさえできません。
誰かが共有したいポインタやヒントがありますか?
どうもありがとう、N
私はC++とopenframeworksにかなり慣れていません。LucasKanadeテクニックを使用してオブジェクトを操作することから始めています。私はオブジェクトを押しのけることにある程度成功していますが、残念ながら、オブジェクトを適切に回転させる方法がわからず、回転運動がいつ発生しているかを検出することさえできません。
誰かが共有したいポインタやヒントがありますか?
どうもありがとう、N
オプティカルフローの計算は、それ自体では「回転運動」などを検出するのに役立ちません。基本的に、オプティカルフローの計算では、ピクセルごとの変化を確認するだけですが、回転とは、ピクセルの変化のより大きな集合体を意味します。アルゴリズムは、「オブジェクトのエッジ上のすべてのピクセルが(反)時計回りの方向に流れている」などを検出する必要があります。行うのは非常に難しく、OpenFrameworksやOpenCVにはあなたを助けるものは何もないと思います。
画像内のオブジェクトの回転、または仮想オブジェクトに影響を与える画像内の回転のような動きを検出しようとしていますか?前者の場合、オブジェクトを識別して、回転などを含めて追跡するためのOpenCV手法があると思います。研究するのは「opencvオブジェクトトラッキング」や「opencvオブジェクトモーション分析」のようなものだと思います。
モーションの2x3アフィン変換行列を計算することが解決策になる可能性があります。アフィン変換行列には、スケーリングに関する限り、並進運動と回転運動が含まれています。cv :: getAffineTransformよりもOpenCVを使用している場合は、追跡された特徴点を直接入力できる場所を探しています。