3

opencv 3.0.0 ベータ版を使用しています。

カメラを調整し、イメージ ポイント (2D) を 3D のポイントに投影したいと考えています。

私は機能を見ました:void fisheye::projectPoints(InputArray objectPoints, OutputArray imagePoints, InputArray rvec, InputArray tvec, InputArray K, InputArray D, double alpha=0, OutputArray jacobian=noArray())しかし、私は反対の投影が欲しいです.

知っている :

  • カメラマトリックス、
  • 歪み係数、
  • 翻訳ベクトル、
  • 回転ベクトルと
  • オブジェクトの 3D ポイントと 3D 原点の間の距離。

これどうやってするの?

4

3 に答える 3

2

オブジェクトの 3D ジオメトリと対応する 2D イメージ ポイントがわかっている場合は、3D-2D ポイントの対応からオブジェクトのポーズを見つけることができます。

次のことを知っておく必要があります。

  • objectPoints: 3D オブジェクト座標空間内のオブジェクト ポイントの配列、
  • imagePoints– 対応する 2D 画像点の配列、
  • カメラ行列と歪み係数

次に、solvepnp()は、モデル座標系からカメラ座標系にポイントをもたらすrvecとともに推定します。tvec

于 2015-03-04T14:23:54.843 に答える
1

私の問題を解決するために、独自の再投影関数を実装しました。この関数は、fisheye::projectPoint の逆です。3D ポイントと原点の間の距離がわかっているため、これは私の問題に固有のものです。

ミカさん、コメントありがとうございます。

于 2015-03-27T14:55:07.323 に答える