まずは次に示す方法でKinectの情報をOpenCVで表示できる環境を用意します。
次に
$(OPEN_NI_INSTALL_PATH)\Data\SamplesConfig.xml
を次のように書き換えます。(バックアップとっておいて!)
あとは新しくコンソールアプリを作り、次のソースを実行するだけです。
実行結果がこちら↓。
IR画像の表示をわかりやすくするため、輝度値を下げて表示しています。
ところどころ、明るい点があることが確認できますね。
500mm以上手を近付けるとサチッてしまいました。(輝度値が飽和状態になりました。)
しかしGain(XN_CAPABILITY_GAIN)を調整すれば
自前処理で500mm以内での距離画像計測は可能と考えられます。
(まだ誰も挑戦していないのかな?)
以下の組み合わせは問題なく動作することを確認しました。
depth image + RGB image
depth image + IR image
しかし、次の組み合わせでの動作は確認できませんでした。(ちょっと調べたけど解決策不明)
IR image + RGB image
depth image + RGB image + IR image
Kinect の距離画像 + 自前処理の距離画像 + RGBカメラ画像の取得とかやりたいのだけど…
追記です。
多くの方から拍手、質問をいただきましたのでKinectカメラの Gain の調整を試みました。
結論から言うと、Gain(XN_CAPABILITY_GAIN)を使っての調整は確認できませんでした。
試行したコードがこちら↓
結果は false でした。サポートされていないようです。
もしサポートされているようなら、以下に示す方法で調整できると OpneNIchm を読んだとき感じていたのですが…残念です。
実際に調整できたという例がありましたら連絡ください。
以上です。
2011/06/03 最終更新