異なる位置から撮った2つの画像があります。 2番目のカメラは、1番目のカメラに対して右、上、後ろにあります。 カメラは比較的異なる深度にあるため、アフィン変換だけでなく、2つのビュー間に透視変換があると思います(私は正しいですか??)2つの画像の間にいくつかの対応する点があります。これらの対応点を使用して、各ピクセルの1番目から2番目の画像への変換を決定することを考えています。
関数 findFundamentalMat と findHomography ....の両方が3x3行列を返すことに混乱しています。2つの違いは何ですか?
それらを使用するために必要な/前提条件(いつ使用するか)はありますか?
1番目の画像から2番目の画像にポイントを変換するために使用するものはどれですか?関数が返す3x3行列には、2つの画像フレーム間の回転と平行移動が含まれていますか?
wikipedia から、ファンダメンタルマトリックスは対応する画像ポイント間の関係であることがわかりました。 SO答え ここ で、対応するポイントを取得するにはエッセンシャルマトリックスEが必要であると言われています...しかし、Eを計算するための内部カメラマトリックスがありません。 .... 2つの画像があります。
対応点を決定するにはどうすればよいですか?提案を待っています。ありがとう
ワールドシーンジオメトリに関する追加の仮定がないと、2つのビューの間に射影変換があることを確認できません。これは、シーンが平面の場合にのみ当てはまります。そのトピックに関する適切なリファレンスは、HartleyとZissermanによる本 Multiple View Geometry in Computer Vision です。
世界のシーンが平面でない場合は、findHomography関数を使用しないでください。基本行列Fの推定値を提供するfindFundamentalMat関数を使用できます。この行列は、2つのビュー間のエピポーラジオメトリを記述します。 Fを使用して画像を修正し、ステレオアルゴリズムを適用して密な対応マップを決定できます。
「透視変換」という表現を「射影変換」という意味で使っていると思います。私の知る限りでは、透視変換は世界から画像へのマッピングであり、画像から画像へのマッピングではありません。
2つのビュー間の変換が射影変換(つまり、ホモグラフィ)であるケースは2つだけあります。シーンが平面であるか、2つのビューがその中心を中心に回転するカメラによって生成されたものです。
基本行列の関係はx'Fu =で、xは一方の画像にあり、uはもう一方の画像にあります。xとuは同じ3d点の投影です。また、l = Fは、uの対応点がオンである必要がある行(lx '=)を定義するため、対応の探索空間を限定するために使用できます。
ホモグラフィは、平面の1つの投影上の点を平面の別の投影にマップします。 x = H