2017-12-04 36 views
0

3Dカメラの位置、ワールドフレーム内のオブジェクトの位置とサイズ、カメラの行列および以前のカメラ較正からの歪み係数を含む。OpenCV(C++) - 既知の3Dオブジェクトとカメラの位置からの画像の2D座標の計算

私が取り組む必要があるのは、オブジェクトの2D画像座標です。ちょうどオブジェクトがobjPosと半径objRad世界の位置に球であるので、私はのための座標を見つけたい画像がimgPosと半径imgRad画像位置の円になるとしましょう。

どうすればいいですか?あなたはこの関数を呼び出すために必要なすべてを持っている私の意見でprojectPoints -

OpenCVので乾杯

+0

あなたはそれよりも多くのことが必要です。投影に使用するカメラ行列が必要です。モデル座標系からカメラ座標系への平行移動と回転である外来が必要です。次に、あなたは点を投影します...位置は計算するのが簡単ですが、球のすべての点を投影するか、球に垂直な画像面に投影しない限り、半径はあまり単純ではありません。 – api55

答えて

0

は、3Dが(カメラ)画像上の座標投影する機能が存在します。引数は次のとおりです。

  1. 3Dは、あなたのカメラの
  2. ローテーションを投影する座標 - rvec
  3. お使いのカメラの位置 -
  4. tvecカメラ行列 - あなたは
  5. カメラの歪みを持っているキャリブレーションから係数 - キャリブレーションの結果
  6. 結果の2D画像座標

4x4マトリックスの形式で外部カメラパラメータを使用している場合は、それからrvecとtvecを抽出する必要があります(see here)。

この例の場合は、対応する半径の球の3D座標を生成します。次のステップでは、これらの3D座標を上記の方法で投影します。

関連する問題