OpenCVには、ステレオカメラからの3D再構成のサポートが多数含まれています。私の場合は2台のカメラがあり、ある点の3D座標を知りたい。2つの2Dポイントから3Dポイントを再構築しますか?
私が持っているもの: が3D
でこの点を座標:- ピクセルが何を取得したい
- 既知の内因性および外因性のカメラが
をparametres両方の画像上の点の座標
OpenCVには、ステレオカメラからの3D再構成のサポートが多数含まれています。私の場合は2台のカメラがあり、ある点の3D座標を知りたい。2つの2Dポイントから3Dポイントを再構築しますか?
私が持っているもの: が3D
でこの点を座標:をparametres両方の画像上の点の座標
opencvがこれのための構造を持っているかどうかわかりません。しかし、私はあなたが基準点としてポイント - >カメラ - >他のカメラの内側の角度を使用して、カメラに水平に平行な線形距離を構築するために、角度の角度の正弦の法則を使用できることを知っています。
距離を取得したら、同じ構成を使用して垂直方向の位置を計算できます。ここで、死角から角度までの距離は、どちらのカメラを基準にしても上または下です。最初のステップで見つかったオブジェクトであり、その想像上の点(カメラに水平なオブジェクトの上)とオブジェクトの間の角度として90度を使用できます。
私はこの他に同じ質問に答えましたpost。
外部パラメータがある場合、カメラポーズがあります。カメラのポーズと2D点を使用すると、3D点をプロジエクトできます(2D点と外部関数が正しい場合、各カメラは同じ結果になるはずです)。ポーズをホモグラフィに変換するだけです。私はリンク先のポストで説明します。
幸運を祈る!
2つのビューからの三角測量の経験がない場合はHartley and Zisserman's bookの本を読んでください。この本では、2D点の対応、カメラポーズ、およびカメラ較正を使用して実装が非常に簡単な線形三角測量法が説明されています。
このメソッドのコード例はhereです。上記の本に基づいています。
しかし、非常に重要な条件があります。第1に、測定された点の対応関係は、エピポーラ拘束x*E*x' = 0
に対して正しいものでなければならない。第2に、光線間の角度は数度、例えば2度より大きくなければならない。
あなたの答えは、私が理解する限り、これとは別のケースを扱っています。 – Mehdi