2009/10/12

忘備録:cvCalibrateCamera2()について

これは完全に個人用のメモです。

OpenCVを使っていたときに次の記事を発見。

因果応報 | cvCalibrateCamera2関数

で、そこに世界座標系におけるカメラの位置と姿勢が数式で書いてあったんだけど、まだ3Dを始めたばっかりの自分は((なんで?))ってなった。で、考えて見た結果以下のような理由だという結論に至った。

まず、世界座標系 X = (X, Y, Z)T からカメラ座標系 x = (x, y, z)T に変換するためには4x4のカメラ行列を利用して以下の式で表現することができる:

ここで、Rは3x3の回転行列、tは3次元のベクトルとする。OpenCVのcvCalibrateCamera2()が返すRとtはこれ。

それじゃあカメラ座標系から世界座標系に変換するにはどうすればいいのよっていうと、逆行列を用いて以下のように表現できる:

つまり世界座標系におけるカメラの位置と姿勢を求めるためには、この逆行列を利用しなければならない、と。たぶんこんな感じかな…

0 件のコメント: