2012-01-15 9 views
3

Ok私は、何も右または最右端に近いものを得られないような思考がないプログラミングの4日間後に、私の人生の懸念をstackoverflowに投稿しています。少し劇的なことを申し訳ありませんが、今日はちょっとしたプログラマーのように感じます。とにかくOpenCVを使った3D再構成C++。基本行列が大きすぎる

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

RANSAC(N> 8)を使用して基本的なマトリックスを得るために。

私は、十分な量のSURFキーポイント(〜308)が正確に(プロットして)一致するように、広いベースラインで十分なオーバーラップを持つ2つの画像を持っています。

今、問題があります。私は2次元の点を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] 

マトリックスの大きなダイナミックレンジを回避するために、ハートレー(ユークリッド空間ではなく、投影空間の正規化)データポイントを正規化するために提案....でも結果であることを行った後ほぼ同じです。 (10^-9〜10^9)

私は、FundMatが正確な規模ではあるが、10^-9から10^+ 9の差が大きすぎると理解します。

は、私はここで他の質問と呼ばしかし、私はどんなリードを得るように見えるいけない: findfundamentalmatrix-doesnt-find-fundamental-matrix how-to-calculate-the-fundamental-matrix-for-stereo-vision

任意のアイデアは素晴らしいことです。ソフトウェアパイプラインの残りの部分について較正されていないイメージを検討する場合、これは非常に重要なステップです。

nコードが便利です。 (その字下げされていませんが、スペースはあまりにも少ないです。) https://sites.google.com/site/3drecon124/

答えて

0

解決済み...愚かな人間のエラーです。 double型からfloat型へのデータ型変換が行われ、メモリ内の不正な場所からデータが取り出されました。今ではその円滑でエピポーラの制約がスケールまで満足されている。

関連する問題