OpenNI2入門
NiTE(Beta)入門の最後として、手の追跡を行います。コードは前回の続きです。ジェスチャーを検出したときに、その時の手の位置を合わせて取得することができます。その位置を起点に手を追跡させます。今回は、その位置をいくつか保存しておき、手の軌跡を表…
NiTEの特長の一つである、ポーズの検出をやってみます。検出できるポーズは nite::PoseType に定義されており、現在のところPOSE_PSIとPOSE_CROSSED_HANDSの二つです。Psiは、OpenNI初期のスケルトン認識にも利用されていた、上の画像のようなポーズです。Cr…
全バージョンからNiTEの特長であったジェスチャーの検出をやってみます。ジェスチャーの検出はnite::HandTrackerが行います。検出できるジェスチャーはnite::GestureTypeに定義されており、現在のところGESTURE_WAVE、GESTURE_CLICK、GESTURE_HAND_RAISEの3…
ここからはNiTE2(Beta)を使ってみます。OpenNI v1.xとは異なり、ユーザー追跡やスケルトン追跡は完全にNiTEから制御するようになっているようです。そのほかジェスチャー認識、ポーズ認識、手の追跡を行うことができます。ただし、ジェスチャー認識はClick、…
続いてスケルトンの追跡です。 スケルトンもKinect SDKっぽくなっています。ユーザーの認識から追跡を手動で開始させるのは相変わらずですが。
これも Kinect for Windows SDK にあって、OpenNIになかった機能です。 実行中にデバイスが刺されたり、抜かれたりを検出できるようになりました。ビジネスアプリケーションとして、使う場合、この機能はほぼ必須なのでありがたいです。 #include <Windows.h> #include <conio.h></conio.h></windows.h>…
OpenNIの特長的な機能である、データの記録と再生も大幅に使いやすくなっていました。 プログラム的にデータの入出力ができるので、Kinectを使う場合はKinect Studioと用途に合わせて使い分けができますね。
Depthカメラからの距離データを使ってみます。グレースケール画像化と、中心点の距離を表示してみます。
続いて、DepthカメラのIR画像を表示します。 基本的なコードはOpenNI2(Beta) 入門(1) :Colorカメラの画像を表示すると同じです。
OpenNI2 には Kinect for Windows SDK のように、接続されているデバイスを列挙するAPIが追加されました。
前回のOpenNI2(Beta) 入門(4) :接続されているデバイスを列挙するでコンピューターに接続されているすべてのデバイスを列挙できました。今回は、この接続情報から、デバイスを起動する方法を載せます。
さっそくいじってみます。 環境は次の通りです Windows 8 64bit OpenNI2(Beta) 32bit版 Kinect for Windows または Xtion Visual C++ Express 2010 とりあえずコンソールアプリでプロジェクトを作ります。OpenNI2(Beta) をインストールすると、ヘッダーパス(…