Hola!

En el ejemplo de hoy veremos como hacer un Hello World con el nuevo SDK. En el caso de Kinect, el Hello World es básicamente una app que detecte una persona frente al sensor kinect.

1. Crear una app de Consola

2. Agregar la referencia a Microsoft.Kinect v2.0

image

4. Importante: Es necesario cambiar la configuración de la referencia para que no se haga una copia local de la misma.

image

5. Modificamos el proyecto para que compile para X86 o X64. En este modo todavía no funcionan los proyectos con build del tipo ANY CPU.

image

6. Luego agregamos el siguiente código a la app de consola

   1: using System;

   2: using Microsoft.Kinect;

   3:  

   4: namespace ConsoleApplication1

   5: {

   6:     class Program

   7:     {

   8:         private static KinectSensor _kinectSensor;

   9:         private static Body[] _bodies;

  10:         private static BodyFrameReader _bodyFrameReader;

  11:  

  12:         static void Main(string[] args)

  13:         {

  14:             // gets the default sensor

  15:             _kinectSensor = KinectSensor.Default;

  16:             if (null != _kinectSensor)

  17:             {

  18:                 // open the sensor

  19:                 _kinectSensor.Open();

  20:  

  21:                 // init body recognition

  22:                 _bodies = new Body[_kinectSensor.BodyFrameSource.BodyCount];

  23:                 _bodyFrameReader = _kinectSensor.BodyFrameSource.OpenReader();

  24:                 _bodyFrameReader.FrameArrived += _bodyFrameReader_FrameArrived;

  25:  

  26:                 // sensor init done!

  27:                 Console.WriteLine("Sensor init done !");

  28:             }

  29:  

  30:             Console.ReadLine();

  31:         }

  32:  

  33:         static void _bodyFrameReader_FrameArrived(object sender, BodyFrameArrivedEventArgs e)

  34:         {

  35:             var frameReference = e.FrameReference;

  36:             var frame = frameReference.AcquireFrame();

  37:             if (frame == null) return;

  38:             using (frame)

  39:             {

  40:                 // update bodycount

  41:                 frame.GetAndRefreshBodyData(_bodies);

  42:                 foreach (var body in _bodies)

  43:                 {

  44:                     if (body.IsTracked)

  45:                     {

  46:                         Console.WriteLine("Body Tracked:" + body.TrackingId);

  47:                     }

  48:                 }

  49:             }

  50:         }

  51:     }

  52: }

Antes de seguir veamos algunos puntos interesantes del nuevo SDK

  • línea 15. ya podemos tener acceso al sensor por defecto conectado a nuestro ordenador.
  • líneas 21 a 24; ahora se introduce el concepto de Body para el reconocimiento. Antes eran Skeletons
  • líneas 33 a 50; una vez detectado un frame de Body, podemos parsear el mismo y llenar un array de bodies para comenzar a trabajar con los mismos

7. Lanzamos la app KinectService

image

8. Ejecutamos nuestra applicación y ya tenemos una app que detecta bodies con el nuevo Kinect for Windows SDK v2.

image

Y como siempre

“This is preliminary software and/or hardware and APIs are preliminary and subject to change

Saludos @ Home

El Bruno

image image image Google

4 responses to “[#KINECTONE] Hola mundo con #KinectSdk v2 (detectando bodies!)”

  1. […] que haré es partir del ejemplo de consola de hace unos días (post) y sobre el mismo cambiaré la rutina que procesa el reconocimiento de […]

    Like

  2. […] Hola mundo con #KinectSdk v2 (detectando bodies!)https://elbruno.com/category/msn-microsoft/kinect/kinect-sdk-v2/page/2/ […]

    Like

  3. Hola Bruno,
    Podrias decirme que referencias tienes en tus ConsoleApplications para KinectV2? Me funcionan los samples, pero no me reconoce el KinectSensor en mis intentos de apps y creo que me faltará alguna referencia.
    Si, ya tengo Microsoft.Kismet.

    Like

    1. Juan buenas
      solo tengo la referencia a Microsoft Kinect V2 ? te funcionan los ejemplos de fabrica del SDK? porque el USB 3 suele ser un poco molesto
      Saludos

      Like

Leave a reply to [#KINECTONE] HowTo: detectar manos abiertas o cerradas | El Bruno Cancel reply

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading