私は3D再構築に取り組んでいます。そして今、一対の画像を考えてみます。対応する点のセットがあります。カメラの詳細があります。たとえば、フォーカスの詳細、回転および平行移動マトリックス (4*4) があります。ポイントを3D(三角測量)で投影したい。だから私が知っている限り、因子代数によってそれはかなり簡単です。しかし、私はまだそれを明確に理解する必要があります。これに従う方法について誰かが考えを持っていますか? 私はmatlabに取り組んでいるので、それを実装する必要があります! 私はまた広すぎるかもしれません。しかし、私を導いてください!
1533 次
1 に答える
0
既知のカメラ属性からカメラ行列を計算する必要があります。これは、3D の同次点を 2D ピクセル座標にマッピングするスケーリング射影行列です。(まともな精度が必要な場合は、カメラのレンズの歪みを測定して体系的に修正する必要があることに注意してください。ただし、それは二次的な詳細です。)
次に、カメラ マトリックスをポーズ マトリックス (前述の 4x4 回転/平行移動マトリックス) で乗算T
して、選択した 3D 座標系の点をカメラの (修正された) ピクセル座標に投影するマトリックス (合計など)を取得します。
pixel vector Q.x = T * point P.x
Q.y P.y
Q.z P.z
Q.w 1
pixel coordinates = (Q.x/Q.w, Q.y/Q.w)
"pixel depth" = Q.z/Q.w
このマトリックスを反転し、2 つの深度を選択することでピクセル座標を 3D 光線に投影するために使用できます。1 つはカメラの位置で、もう 1 つはそうでないものです (単位深度または無限遠点のいずれかを選択するのが最適です)。光線が正確に交差するとは期待できませんが、対応する 2 つの光線が最も近い場所に基づいて最適な位置を取得できます。より一般的には、任意の数の光線の交差を最小二乗問題として扱うことができます (理想的には、各光線から予想されるエラーを条件とします)。
于 2012-10-31T20:41:25.380 に答える