先日リリースされたOpenCV 2.3(RC)では、OpenNIをサポートして、Kinectを簡単に扱えるようになったみたいです。
早速試してみたところ、本当に簡単でびっくりしましたw
サンプルプロジェクト一式はこちら
環境の作成
- 通常のOpenNI環境を作成します
- OpenCV 2.3 RCのインストールは、念のためソースから行いました
- 64bit環境だと、バイナリのインストールができないようなので、ソースからのインストール練習を兼ねて
- インストールの手順はこちらを参考にしました
- ざっくりとしたインストール手順
- サンプル作成
#include <iostream> #include <opencv2/opencv.hpp> void main() { try { char* name = "openni"; cv::namedWindow( name ); cv::VideoCapture capture( CV_CAP_OPENNI ); while ( 1 ) { // データの更新を待つ capture.grab(); // RGBを取得して表示 cv::Mat rgbImage; capture.retrieve( rgbImage, CV_CAP_OPENNI_BGR_IMAGE ); cv::imshow( name, rgbImage ); if ( cv::waitKey( 10 ) >= 0 ) { break; } } cv::destroyAllWindows(); } catch ( ... ) { std::cout << "exception!!" << std::endl; } }
まとめ
とても簡単^^;
depthの表示がよくわからないので、あとで調べる(たぶん)
Xtionで使う方法もあるそうです