5

この問題についてあなたの助けが必要です。2D 画像から 3D で単純なシーンをモデル化しようとしています。私は 2 つの画像を使用しています (左と右 - 有名なつくばのシーン) http://www.cc.gatech.edu/classes/AY2003/cs7495_fall/ProblemSets/Data/tsukuba-right.bmp 視差マップを取得します。このように。 http://www.robots.ox.ac.uk/~ojw/2op/tsukuba_score.png

この後、いくつか質問があります。手順は次のとおりです。

cvStereoRectify (Q を取得するため) cvReprojectImageTo3D (視差マップ、3dimage、Q )

しかし、stereoRectify の入力として何を渡すかわかりません。画像は 2 つしかありません。カメラに関する情報はありません。(おそらく、代わりに stereoRectifyUn calibrationd を使用できます。そうであれば、どうすればよいですか?)

助けてくださいありがとう

4

1 に答える 1

13

opencv doc からの抜粋:

" 関数 stereoRectify は、(仮想的に) 両方のカメラ画像平面を同じ平面にする各カメラの回転行列を計算します。その結果、すべてのエピポーラ線が平行になり、密なステレオ対応の問題が単純化されます。入力時に、関数は計算された行列を取りますstereoCalibrate() によって出力すると、新しい座標で 2 つの回転行列と 2 つの射影行列が得られます。」

答え:

それは3つのオプションを意味します:

  • または、2 つの画像があり、たとえばloadXMLFromFile() => stereoRectify() => reprojectImageTo3D()などの XML からロードしたカメラ (組み込み) のモデルがわかっている場合

  • または、それらを持っていませんが、カメラを調整できます => stereoCalibrate() => stereoRectify() => reprojectImageTo3D()

  • または、カメラを調整できません (筑波卿のカメラを持っていないため、それはあなたの場合です。たとえば、SURF、SIFT を使用して両方の画像でペアのキーポイントを見つける必要があります (実際には任意のブロブ検出器を使用できます)。 ), 次に、これらのキーポイントの記述子を計算し、それらの記述子に従って画像右と画像左からキーポイントを照合し、それらから基本的なマットを見つけます. 処理ははるかに難しく、次のようになります:キーポイントの検出 (SURF, SIFT) => 記述子の抽出 (SURF、SIFT) => 記述子の比較と照合 (BruteForce、Flann ベースのアプローチ) => これらのペアから基本的なマット (findFundamentalMat()) を見つける => stereoRectifyUn calibrationd() => reprojectImageTo3D()

お役に立てば幸いです。そうでない場合は、お知らせください

ジュリアン

于 2011-07-19T16:21:24.613 に答える