Top > Kinect > ExtendKinectLibrary > HowToUse > GetPlayerImageWithEKL
Last-modified: Mon, 29 Oct 2012 20:08:57 HADT
Counter:1152 Today:1 Yesterday:0 Online:2
このエントリーをはてなブックマークに追加

EKLを使って簡単にプレイヤのみの画像を取得する

About

0.png

 Kinectを利用すると映画の撮影などで利用されるブルーバックスクリーンなどと同様に、カメラで撮影される人物のみを検出し、表示する事ができます。本来であればMapメソッドを利用するなどする必要がありますが、EKLを利用すると極めて簡単にこの機能を利用する事ができます。

Sample

 サンプルではAllFrameReadyイベントを利用しています。コアな部分は以下のコードだけです。EKLに実装される「ColorImageFrame.GetPlayerImage~メソッド」を利用する事で、Kinectで写されるプレイヤのみの画像が得られます。面倒な変数の用意やMap処理が一切不要です。XNAとWPF向けのメソッドが用意されます。

        void kinect_AllFramesReady(object sender, AllFramesReadyEventArgs e)
        {
            //Frameの取得
            DepthImageFrame depthImageFrame = e.OpenDepthImageFrame();
            ColorImageFrame colorImageFrame = e.OpenColorImageFrame();
            
            //何れかでも取得に失敗した場合は処理を中断する
            if (depthImageFrame == null || colorImageFrame == null)
                return;

            //EKLを使ってプレイヤの画像を表示する
            this.image1.Source = colorImageFrame.GetPlayerImageBmpSource(kinect,depthImageFrame);

            //利用し終えたFrameを破棄する
            depthImageFrame.Dispose();
            colorImageFrame.Dispose();
        }

WindowsFormsへの対応は現在考えていません。全ての処理をWindowsFormsに対応させると開発労力を割くことになります。今後WindowsFomrsに代わりWPFが普及するであろうことから、EKLは基本的にWindowsFormsへの対応を打ち切ることにしました。