2012/01/18

チェスボードパターン上に3軸を表示する

今日はカメラのキャリブレーションで使う、チェスボードパターン上に3軸を表示するプログラムを作成していました。

コードはまだ汚い状態なので、ひとまず流れだけ書いておきます。

最初に、カメラの内部定数を求めてファイルに保存しておきます。
そのあと、ファイルから内部定数を読み込み、各画像の特徴点(今回はチェスボードの頂点)をcvFindChessboardCornersを使って計算します。
次に、特徴点をさらに高精度化するために、cvFindCornerSubPixに渡します。

画像上の特徴点座標、カメラ内部定数(intrinsic,distortion)、物体上の特徴点座標がわかったので、次は移動ベクトルと回転ベクトルを計算しす。cvFindExtrinsicCameraParams2にまとめて放り込むと計算してくれます。

移動ベクトル(3x1)と回転ベクトル(3x1)が求まれば、あとは好きな座標(今回は物体上に表示したい軸)をcvProjectPoints2を使って変換すると、画像上のどこにくるかがわかります。








今回はcvProjectPoints2に任せてしまいましたが、行列の勉強のため、cvProjectPoints2を使わない方法でもやってみたいと思います。

ではまた。

0 件のコメント:

コメントを投稿