3

わかりました、何も正しくないか、少なくとも正しいことに近いと思われる4日間の無知なプログラミングの後、私の人生の難問をstackoverflowに投稿しています。少し大げさで申し訳ありませんが、今日はお粗末なプログラマーのように感じます。

とにかく、私の問題は次のとおりです。

RANSAC (N>8) を使用して基本行列を取得します。

十分な量のSURFキーポイント(〜308)が正しく一致するように、ベースラインが広いが十分に重なっている2つの画像があります(プロットします)。

今問題があります。2D ポイントを cv::findFindamentalMat に渡しますが、完全に根拠のない結果が得られます。関数は次を返します。

     FundMat=[2.05148e-13    3.72341 -2.03671e+10
              1.6701e+26    -4.17712  4.59533e+29
              3.32414e+18    2.8843   1.91069e-26]

行列の大きなダイナミック レンジを回避するために、Hartley はデータ ポイントを正規化することを提案しました (射影空間の正規化ではなく、ユークリッド空間で)。(10^-9~10^9)

FundMat は縮尺までしか正確ではないことは理解していますが、10^-9 から 10^+9 の差は大きすぎます。

ここで他の質問を参照しましたが、手がかりが得られないようです:

どんなアイデアでも素晴らしいでしょう。これは、ソフトウェア パイプラインの残りのキャリブレーションされていないイメージを検討する際に非常に重要なステップです。

コードが役立つ場合。(インデントも色もありません。スペースが少なすぎます。) https://sites.google.com/site/3drecon124/

4

1 に答える 1

0

その解決...愚かなヒューマンエラー。double から float へのデータ型変換があり、メモリ内の不適切な場所からデータがフェッチされていました。これで、その滑らかでエピポーラの制約がスケールまで満たされます。

于 2012-01-17T15:36:19.617 に答える