HOME

claw
ニックネーム claw
自己紹介 プログラミング初心者ですが、kinectアプリはじめてみました。
  • やってみよう!Kinectアプリ開発 - 第4回 骨格情報の利用 2012-06-22 17:18 kinection.jp管理人 前回はKinect™ for Windows® SDKを使い、Kinectのカメラから画像情報を取得し画面に表示するアプリケーションを作成しました。今回はこれを修正し、よりKinectらしいアプリケーションにしましょう。通常説明の順序として次は深度センサーなのですが、ここは敢えて飛ばして骨格情報の取得をしてみます。 続きを見る
    4件の質問スレッド
    • バージョンアップで? kazgb 2012-10-31 22:05 SDKがバージョンアップされて、
      警告みたいなのがでていたので気になりました。

      >= kinect.MapSkeletonPointToColor(headPos, rgbFormat);

      大雑把でアレですが上の部分。。。
      一応動くみたい?ですが、[使用しないでください]と記述されていました。

      調べて、以下に書き換えました。

      = kinect.CoordinateMapper.MapSkeletonPointToColorPoint(headPos, rgbFormat);

      動いているので問題なさそうですが、、、大丈夫・・・ですよね? うん。
    • 解説のDrawingVisualについて claw 2012-08-09 17:03 はじめまして。
      現在、大学でプログラミングを学びはじめた者です。

      非常に細かいことで申し訳ないのですが、
      2ページ目、fillBitmapメソッドの解説の部分、

      > DrawingVisualのRenderOpenメソッドでDrawingContextオブジェクトを作成します。

      となっていますが、
      DrawingVisualのRenderOpenメソッドでDrawContextオブジェクトを作成します。
      の間違い(?)ではないでしょうか?

      読んでいて少し混乱してしまったので……
      1件のコメント
      • kinection.jp管理人 clawさん

        ご質問を理解できていないかも知れませんが、RenderOpenメソッドでDrawingContextクラスのオブジェクトを作成しているので、意図通りです(DrawContextというクラスはありません)。
        もし、用語として「<クラス名>オブジェクト」ではなく「<変数名>オブジェクト」とすべき、という意味であれば、例えばgoogleで"DrawingContext-object"で検索すれば普通に使われているのがわかると思います。
        2012-08-10 10:00
    • 保存について 柏木 2012-07-17 10:06 初めまして。
      初心者なのですが、取得した骨格情報というのはテキストなどに保存可能でしょうか?
      全20ポイントのスケルトンのx,y,z座標を30フレームで取得し続け、10分程度のデータを保存することは可能でしょうか?
      続いて、取得したRBG画像を動画として保存することは可能でしょうか?
      環境は
      VisualStudio2010でc#
      Kinect for Windows v.1.5
      Windows7
      です。

      よろしくお願いいたします。
      2件のコメント
      • 柏木 コメントありがとうございます!えと・・・そうなると、たとえば
        (1)
        void kinect_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
        try
        {
        using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
        {
        if (skeletonFrame != null)
        {
        DrawSkeleton(skeletonFrame);
        }
        }
        }
        catch (Exception ex)
        {
        MessageBox.Show(ex.Message);
        }
        }
        private void DrawSkeleton(SkeletonFrame skeletonFrame)
        {
        // スケルトンのデータを取得する
        Skeleton[] skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
        skeletonFrame.CopySkeletonDataTo(skeletons);

        SkeletonCanvas.Children.Clear();

        // スケルトンのジョイントを一つ一つ取得
        foreach (Skeleton skeleton in skeletons)
        {
        // スケルトンがトラッキング状態の場合は、ジョイントを取得
        if (skeleton.TrackingState == SkeletonTrackingState.Tracked)
        {
        // ジョイントを保存する
        foreach (Joint joint in skeleton.Joints)
        {
        // ジョイントがトラッキングされていなければ次へ
        if (joint.TrackingState == JointTrackingState.NotTracked)
        {
        continue;
        }

        // ジョイントの座標を保存する
        JointRecord(joint.Position);
        }
        }
        }
        }
        とでもして、JointRecord部分で・・・どう作ればいいのかわからなくなってしまっております。Console.WriteLineで保存可能なのでしょうか?

        (2)
        void kinect_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e)
        {
        try
        {
        // RGBカメラのフレームデータを取得する
        using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
        {
        if (colorFrame != null)
        {
        // RGBカメラのピクセルデータを取得する
        byte[] colorPixel = new byte[colorFrame.PixelDataLength];
        colorFrame.CopyPixelDataTo(colorPixel);

        // ピクセルデータをビットマップに変換する
        RGBCameraImage.Source = BitmapSource.Create(colorFrame.Width, colorFrame.Height, 96, 96,
        PixelFormats.Bgr32, null, colorPixel, colorFrame.Width * colorFrame.BytesPerPixel);
        }
        }
        }
        catch (Exception ex)
        {
        MessageBox.Show(ex.Message);
        }
        }
        たとえばこの状態だとして、GridのImageを動画で保存するにはどのようにすればいいのでしょうか?

        色々検索はしてみたのですが、画像保存の場合くらいしか見つからず、よく分かりませんで。

        どうぞよろしくお願いいたします。
        2012-07-20 10:40
      • 初音玲 (1)
        保存先の書き込みスピードにもよりますがテキストデータとしての保存は可能です。

        (2)
        取得したRGB画像を動画として保存することは可能です。
        2012-07-19 02:19
    • バグ修正 kinection.jp管理人 2012-07-03 09:38 かおるんさんご指摘の画像が反転するバグの修正です。

      Matrix rot = new Matrix(-headMtrx.M11, headMtrx.M12,
      -headMtrx.M21, headMtrx.M22,
      headPt.X, headPt.Y);

      M11 と M12 のところの符号を反転させています。

ジグソープレミアムレビュー

  • やってみようKinect(キネクト)アプリ開発 - ラボクルー集まれ!