スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

OpenNI Java を試す (2)

2012年01月09日 03:39

今日はHandsGeneratorというクラスを触ってみた。目標は、手の動きを追う方法を調べる事。

他の○○Generatorと同様にcontextを与えて生成。

handsGen = HandsGenerator.create(context);

それぞれのイベントのオブザーバーの実装クラスを渡しておく。

handsGen.getHandCreateEvent().addObserver(...)
handsGen.getHandDestroyEvent().addObserver(...)
handsGen.getHandUpdateEvent().addObserver(...)

これだけでは何も起こらない。どっかでhandsGen.startTracking(Point3D)しないとトラッキングが始まらない。

(ここはサンプルのUserTrackerのままだが)まず、UserGeneratorを生成し、userGeneratorからskeltonCapabikityを取得する。skeltonCapabilityのCalibrationCompleteイベントのオブザーバを登録し、

userGen = UserGenerator.create(context);
skeletonCap = userGen.getSkeletonCapability();
skeletonCap.getCalibrationCompleteEvent().addObserver(...);


そのオブザーバーの中は次のような処理にする。キャリブレーションがOKだったら、SkeltonCapabilityのトラッキングを開始し、その後に右手のトラッキングを開始する。

if (args.getStatus() == CalibrationProgressStatus.OK)
{
skeletonCap.startTracking(args.getUser());
handsGen.StartTracking(skeletonCap.getSkeletonJointPosition(
args.getUser(), SkeletonJoint.RIGHT_HAND).getPosition());
}

以上で、何となく手の動きが追えるようになった。ただし、「RIGHT_HAND」と書いてあるのにどうしても左手をトラッキングしているように見える・・。
スポンサーサイト


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://aaatxt.blog57.fc2.com/tb.php/76-384c851f
    この記事へのトラックバック



    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。