私はVisual Studio 2012でOpenCVに取り組んでいます.opencvでHomographyマトリックスをStitch 2 imagesに取得しようとしたので、実際にそれを行うための手順がわかりません:
私はVisual Studio 2012でOpenCVに取り組んでいます.opencvでHomographyマトリックスをStitch 2 imagesに取得しようとしたので、実際にそれを行うための手順がわかりません:
最初に、画像で説明した 2 点対応は、ホモグラフィ推定には不十分であることに注意してください。ホモグラフィには 7 つの自由パラメーターがあります。8 つの行列要素がありますが、ホモグラフィは同次量です。これは、マトリックスを好きなようにスケーリングできることを意味し、自由パラメーターを 1 つ減らすことができます。7 つのパラメーターを推定するには、少なくとも 4 つの対応する点が必要です。
OpenCv のメソッドをやみくもに呼び出すよりも、自分が何をしているのかを理解することが重要だと思うので、実際のアルゴリズムについて読んでください。ホモグラフィ計算の最も単純な (しかし最適ではない) 方法は DLT です。これは、最小二乗法でy = Hx
の成分を解くために、4 つ以上の点の方程式を再編成することになります。H
これは詳細の素晴らしい説明です
: https://engineering.purdue.edu/kak/courses-i-teach/ECE661.08/solution/hw4_s1.pdfジッサーマン。
コメントで指摘されているように、OpenCv のドキュメントは次のとおりです 。
2 つの画像間でホモグラフィを確立するには、少なくとも 4 つのポイントが必要です。それぞれに 2 つの座標があり、2 つの方程式 / 制約が与えられます。ホモグラフィには 8 つの自由度があります (これは 9 つの要素を持つ 3x3 フルランク行列であり、同次座標で動作するため、スケールのために -1 自由度です)。
平面の画像、またはその中心を中心に回転するカメラによって撮影された画像のみがホモグラフィによって関連付けられることに注意してください (この後者の場合、平面は無限遠の平面です)。
このページでは、特徴抽出と RANSAC を使用してホモグラフィを計算する方法を示します。