OpenCVにはカメラをキャリブレーションする機能(内部と外部のパラメータを推定する関数)が用意されています。
Kinect カメラを OpenCV でキャリブレーションする方法をここにまとめます。
次のコードを実行します。それだけです。
使用方法:
'c'ボタンでjpgファイルをキャプチャーします。
'q'ボタンでキャプチャーした画像を用いてキャリブレーションを行います。
キャリブレーション結果を表示して、CameraParam.xml ファイルに結果を出力します。
次回以降、これを初期値として利用します。
XMLファイルからカメラ行列と歪み係数行列を取得する方法はハイライトしている行を参考にしてください。
実行結果↓(左が元画像、右が歪み補正を行った画像です。)
結果から、Kinect から得られる画像は歪曲収差が小さいことがうかがえます。(むしろ補正して歪んだ?)
画角もそれなりに広いのに、なかなかどうして、既に補正してあったりするのですかね?
とりあえず、カメラ画像を処理しようとするとキャリブレーションしないことには何も始まらないので
もし、Kinect でキャリブレーション方法をお探しの方がいましたら参考にしてみてはいかがでしょうか?
以上です。
参考ページ
カメラキャリブレーションと3次元再構成
OpenCV2.0によるキャリブレーションプログラム
実際のチェスボードパターンファイル:PDF
OpenCVのウィンドウ
2011/05/21 最終更新