opencv を使用して 6 つの円のパターンを検出する必要があります。opencvでしきい値処理と輪郭関数を使用して、円とその重心を検出しました。
次に、これらの円の間の関係を、縮尺と回転に対して不変になるように定義する必要があります。これにより、さまざまなビューでこのパターンを検出できるようになります。オブジェクトのポーズを決定するには、このパターンを使用する必要があります。
スケール/回転の不変性を達成するにはどうすればよいですか? 私がそれについて読むことができる参照はありますか?
opencv を使用して 6 つの円のパターンを検出する必要があります。opencvでしきい値処理と輪郭関数を使用して、円とその重心を検出しました。
次に、これらの円の間の関係を、縮尺と回転に対して不変になるように定義する必要があります。これにより、さまざまなビューでこのパターンを検出できるようになります。オブジェクトのポーズを決定するには、このパターンを使用する必要があります。
スケール/回転の不変性を達成するにはどうすればよいですか? 私がそれについて読むことができる参照はありますか?
回転を見つける必要があるのか、単にそれを取り除く必要があるのか 、それとも円がリンクしたパターンを実際に形成しているかどうかを検出する必要があるのか は、私には完全には明らかではありません. いずれにせよ、答えはほとんど同じです。
まず、隣接する円が 1 つしかない 2 つの円を見つけることから始めます。各円の重心について、最も近い 2 つの隣接点までの距離を計算します。距離が 10% 以上異なる場合、重心は「端」の円 (リンクの一番上の円の 1 つ) に属します。
2 つの端の円が見つかったので、互いに水平になるように回転させます。他の重心がそれらの上にある場合は、さらに 180 度回転させて、パターンが目的の方向になるようにします。
これで、平均重心間距離からスケーリングを計算できます。
それが役立つことを願っています。
パターンを回転とスケールに対して不変にするには、パターンを検出するときに方向とスケールを正規化する必要があります。これを実現するための簡単なアルゴリズムを次に示します。
あなたは終わった。あなたは今、スケール/回転不変パターン検出器の誇り高い所有者です!! おめでとう!
これで、パターンを見つけて、提案どおりに変形し、中心位置と円のサイズを比較できます。
あなたの質問は、SURFアルゴリズムが行うこととまったく同じように聞こえます。関心のあるグループを見つけて、回転と拡大縮小に影響されない方法でそれらをグループ化し、他の写真で同じオブジェクトを見つけることができます。
OpenCV と SURF を検索するだけです。