2017-11-17 8 views
0

だから私はこの問題をしばらく苦労していたので、誰かが私を助けてくれたらそれを感謝します。OpenCVのpythonを使ってSIFTを使ってパターンマッチした画像を回転する

パズルを解く物理的なロボットを作成しようとしています。完成したパズルの画像は、私が輪郭と、単一のうち各部分を見つけて、彼らはすべての横軸に平行であるように、それらを回転させるためにOpenCVのを得ている散乱枚の絵

Scattered piece picture

と一緒に提供されます(すべての「ダイヤモンド」または「斜め」のピースが回転して四角形のように見えます)

私はSIFTを使用して、一連の小さな四角形を完全な画像に合わせました。

Comparing an un-rotated square piece to the full picture

問題は、これが正しい向きではないです。 90度、180度、270度を回転させる必要があるかどうかを調べるにはどうすればいいですか?

私が持っているもう一つの問題は、ピースがどの象限に入っているかを判断することです。たとえば、このピースは右下隅に属しています。同様のキーポイントの大部分を識別し、9つの地域の1つに分類する機能はありますか?

答えて

0

SIFTは回転不変であるように設計されているので、回転があっても機能が一致することは良いことです。

必要な回転量を決定するには、画像をトップダウンで表示するためにカメラの較正パラメータを設定する必要があります。あなたのロボットのために、写真はすでにトップダウンであるように見えます。

この仮定が成り立つ場合、回帰を実行してピースを回転させる必要がある角度を知ることができます。あなたの作品が常に正方形であることが分かっている場合は、4つの選択肢しかありません。その場合、4つすべてを試して、抽出されたパッチにどれが最も近いかを確認することができます。

マッチした部分がある象限を決定するには、マッチした点の座標を見てください。コーナーまでの距離は、あなたが必要とするものでなければなりません。

+0

こんにちは、回帰の実行に関するもう少し詳細に行くことができますか?私はそれについて考えていました。もし、ロボットが欠けている角度をとにかく回転させる必要があれば、早く回転させるのではなく、一度にすべての角度を計算することもできます。 execute – elliot430

+0

コスト関数を決定する必要があります。この場合、画像に回転などの変形を適用すると、別の画像が生成されます。このイメージをターゲットパッチと比較して、最小コストを提供する角度を見つけることができます。 –

関連する問題