5

2 つの画像間のいくつかの点の座標対応を計算しようとしています。対応がわかっているポイントのグループがあり、それらを OpenCV で使用してfindFundamentalMatrix()基本行列を見つけます。x^T * F * x' = (0)ポイントごとに検証したところ、結果は常に正しいか、非常に近いものでした。

問題は、最初の画像の点の座標 ( y) と基本行列 ( F) を使用して、2 番目の画像の点の座標 ( ) を求めることy'です。z最初は単純に上記の方程式を使用することを考えましたが、y'点のみを考えると、無限の解が存在する可能性があります。

基本行列を使用して翻訳を計算するには、他にどのような方法がありますか?

より明確にするために: 2 つの投影を「リンクする」基本行列を知っている場合、それを使用して既知の点の座標を(a, b, 1)最初の投影から 2 番目の投影に変換するにはどうすればよいでしょうか?

私たちが知っていることを考えるとa、この式では: (a', b", 1) T * F * (a, b, 1) = (0)bF

例として簡単な図を作成しました: http://i.imgur.com/drNr2.jpg。アイデアは、射影 1 の赤い点の座標(xq, yq)と、両方の射影の他のすべての点の座標がわかっていることを考慮して、射影 2の赤い点の座標を見つけることです。 8点以上)

別の精度: 私の例では、既知の点は同一平面上にありますが、調査された点は必ずしも同一平面上にあるとは限りません。

それが私の問題をより明確にしたことを願っています:)

4

3 に答える 3

3

基本行列は、ある画像の点を別の画像の線に変換します。詳しく教えてください

基本行列を使用して翻訳を計算するには、他にどのような方法がありますか?

お願いします。おそらく例を挙げて達成したいことを教えてください。

編集E: カメラをキャリブレーションした場合、基本行列 から基本行列 を計算できますF。E は、1 つのイメージ内の点を別のイメージ内の点に変換します。ただし、もちろん、要件は内部マトリックスを持つことです。IfKは内部行列E=transpose(K)FKです。もう 1 つの方法は、他のイメージ内の点に対応する線を見つけてから、この線に沿って、最初のイメージ内の点を囲むパッチに外観が最も似ているパッチを検索することです。他にもいくつかの方法がありますが、どちらがあなたのケースに合っているかを判断するには、問題に関するより多くの情報が必要です。

編集2:あなたが持っている図面では、点は同一平面上にあります。したがって、ホモグラフィは 2 つの画像間の点の位置をマッピングし、基本行列を見つける必要はありません。OpenCV にはホモグラフィを推定する機能があり、必要なポイントは 4 つだけです。

于 2012-04-30T16:57:25.347 に答える
2

与えられた:

対応点は画像1のa 。

ゴール:

画像 2のいわゆるエピポーラ線上にある対応する点bを見つけます。 L

どのように?

    | x0 |       | x1 |
a = | y0 | , b = | y1 |
    | 1  |       | 1  |

L = F * a

    |F00 F01 F02|
F = |F10 F11 F12|
    |F20 F21 F22|

画像 2 のbを取得するには、次の式を満たす必要があります。

a' * F * b = 0.

注: a' = transpose(a) .

于 2016-03-20T02:09:54.723 に答える