36

異なる位置から撮影した 2 つの画像があります。2 番目のカメラは、1 番目のカメラに対して右、上、後方に配置されています。

したがって、カメラの深度が比較的異なるため、アフィン変換だけでなく、2 つのビューの間に透視変換があると思います。私は正しいですか?

2 つの画像の間にいくつかの対応する点があります。これらの対応点を使用して、1 番目の画像から 2 番目の画像への各ピクセルの変換を決定することを考えています。

関数findFundamentalMatfindHomographyに混乱しています。どちらも 3x3 行列を返します。2つの違いは何ですか?

それらを使用するために必要な条件/前提条件はありますか (いつ使用するか)?

ポイントを 1 番目の画像から 2 番目の画像に変換するために使用するものはどれですか? 関数が返す 3x3 行列には、2 つの画像フレーム間の回転と移動が含まれていますか?

ウィキペディアから、基本行列は対応する画像点間の関係であると読みました。SO answer hereでは、対応する点を取得するには必須行列 E が必要であると言われています。しかし、E を計算するための内部カメラ マトリックスがありません。2 つの画像しかありません。

対応点を求めるにはどうすればよいですか?

4

3 に答える 3

16

ワールド シーンのジオメトリに関する特別な仮定がなければ、2 つのビューの間に射影変換があると断言することはできません。これは、シーンが平面の場合にのみ当てはまります。このトピックに関する良いリファレンスは、Hartley と Zisserman による書籍Multiple View Geometry in Computer Visionです。

ワールド シーンが平面でない場合は、絶対に findHomography 関数を使用しないでください。findFundamentalMat 関数を使用すると、基本行列 F の推定値が得られます。この行列は、2 つのビュー間のエピポーラ ジオメトリを表します。F を使用してイメージを修正し、ステレオ アルゴリズムを適用して密な対応マップを決定することができます。

「射影変換」という意味で「透視変換」という表現を使用していると思います。私の知る限りでは、透視変換は世界から画像へのマッピングであり、画像から画像へのマッピングではありません。

于 2013-05-28T13:14:20.417 に答える
11

2 つのビュー間の変換が射影変換 (つまり、ホモグラフィ) であるケースは 2 つしかありません。シーンが平面であるか、2 つのビューがその中心を中心に回転するカメラによって生成されたものです。

于 2013-06-21T20:29:00.523 に答える
10

Fundamental 行列は、 x と u が同じ 3 次元点の射影である場合、一方の画像では x、他方の画像では u とx'Fu = 0の関係を持ちます。また 、 l = Fuは、u の対応する点がなければならない 線 ( lx' = 0 ) を定義するため、対応の検索空間を制限するために使用できます。

ホモグラフィは、平面の 1 つの投影上の点を平面の別の投影にマッピングします。 x = 胡

于 2013-06-06T07:10:11.660 に答える