ホーム > KinectV2

Kinect V2

Kinectを取得する

Kinect V1では複数台のKinectを1台のマシーン(最大Kinect6台まで)接続できましたが
Kinect V2では1台しか接続できないようです。
そのため、GetDefault();で取得します。

// KinectSensorを取得する。
Microsoft.Kinect.KinectSensor sensor = Microsoft.Kinect.KinectSensor.GetDefault();

開始(Open)とKinectの抜き差し(Available)

KinectV2のKinectSensorのプロパティにはIsOpenとIsAvailableがあります。
AvailableはOpenされてなければ取得する(trueになる)ができません。

Open

// Kinect Sensorを取得する。
Microsoft.Kinect.KinectSensor sensor = Microsoft.Kinect.KinectSensor.GetDefault();
// Kinect SensorがOpenでないことを確認する。
if(!sensor.IsOpen)
{
  // Kinectを開始します。
  sensor.Open();
}

Available

KinectSensorのOpenメソッドが既に呼ばれており、
Kinectが接続されてフレームが受信できているときに
AvailableがTrueになります。
また、Kinectが抜かれた場合やKinectからフレームを受信できない場合は
AvailableがFalseになります。

KinectがOpenされている状態でUSB接続の抜き差しは、IsAvailableChanged イベントで確認できます。

※ KinectSensorが接続されているのにもかかわらず、利用できない場合は
  サービスのKinectMonitorなどが停止していないか確認してください。

// Kinect Sensorを取得する。
Microsoft.Kinect.KinectSensor sensor = Microsoft.Kinect.KinectSensor.GetDefault();
// Kinect SensorがOpenでないことを確認する。
if(!sensor.IsOpen)
{
  // Kinectを開始します。
  sensor.Open();
  // Kinectの接続イベントに応じて内部で処理する。
  sensor.IsAvailableChanged += (sender, evt) => {
    if(sensor.IsAvailable)
    {
       // Kinectが接続されているときの処理
    }
    else
    {
      // Kinectが抜かれている場合の処理
    }
  };
}

Kinectを停止する

KinectSensorがOpenされている場合、Close処理で適切に停止させます。

// Kinect Sensorを取得する。
Microsoft.Kinect.KinectSensor sensor = Microsoft.Kinect.KinectSensor.GetDefault();
// Kinect SensorがOpenでないことを確認する。
if(!sensor.IsOpen)
{
  sensor.Close();
}

ここまでのサンプル

Kinectの接続状態を表示するサンプルです。
http://wiki.fedorax.info/Project/KinectV2.Sample1.zip

Kinect V1との差異

開始と終了処理について

Kinect V1では、KinectSensorを取得し、KinectSensor.Statusのプロパティから接続状態を確認して、
Startさせる必要がありました。
Kinect V2では、KinectSensorの処理はサービス化され、ユーザアプリとKinectが分離されているため、
事前に接続状態の確認等が不要になっています。
また、開始と終了処理もKinect V1のStart / Stop からKinect V2ではOpen / Closeに変更されています。

このページを共有:
  • このページをはてなブックマークに追加 このページを含むはてなブックマーク
  • このページをlivedoor クリップに追加 このページを含むlivedoor クリップ
  • このページをYahoo!ブックマークに追加
  • このページを@niftyクリップに追加
  • このページをdel.icio.usに追加
  • このページをGoogleブックマークに追加

このページのURL:

TOP