Hola!

Hace un par de días escribí un post sobre Vitruvius, y como me entraron 2 preguntas sobre el mismo, voy a dedicarle un par de posts ya que, realmente simplifica el desarrollo con Kinect.

Pues bien, primero lo primero, descargar la última versión de Vitruvius y compilar la misma (detalle, tiene las referencias a las dlls de Kinect en un path fijo, deberás arreglar las mismas).

Una vez compilada la solución, seguimos los siguientes pasos.

1. Creamos un proyecto de tipo WPF app

2. Agregamos referencias externas a la Dll de Kinect y a

– %\Program Files\Microsoft SDKs\Kinect\Developer Toolkit v1.8.0\Assemblies\Microsoft.Kinect.Toolkit.dll

– %\Program Files\Microsoft SDKs\Kinect\Developer Toolkit v1.8.0\Assemblies\Microsoft.Kinect.Toolkit.BackgroundRemoval.dll

4. Agregamos una referencia a [LightBuzz.Vitruvius] y [LightBuzz.Vitruvius.WPF].

5. Cambiamos la compilación del proyecto para que sea X86

6. Modificamos el archivo MainWindow.xaml

   1: <Window x:Class="WpfVit01.MainWindow"

   2:         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

   3:         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

   4:         Title="El Bruno - Vituvius Camera Feed"

   5:         Height="480"

   6:         Width="640">

   7:     <Grid>

   8:         <Image Name="ImageCamera" />

   9:     </Grid>

  10: </Window>

 

Y luego el código CS del mismo

   1: using System.Windows;

   2: using LightBuzz.Vitruvius;

   3: using LightBuzz.Vitruvius.WPF;

   4: using Microsoft.Kinect;

   5:  

   6: namespace WpfVit01

   7: {

   8:     public partial class MainWindow : Window

   9:     {

  10:         public MainWindow()

  11:         {

  12:             InitializeComponent();

  13:             Loaded += MainWindow_Loaded;

  14:         }

  15:  

  16:         void MainWindow_Loaded(object sender, RoutedEventArgs e)

  17:         {

  18:             var sensor = SensorExtensions.Default();

  19:             if (sensor == null) return;

  20:             sensor.EnableAllStreams();

  21:             sensor.ColorFrameReady += Sensor_ColorFrameReady;

  22:             sensor.Start();

  23:         }

  24:         void Sensor_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e)

  25:         {

  26:             using (var frame = e.OpenColorImageFrame())

  27:             {

  28:                 if (frame == null) return;

  29:                 ImageCamera.Source = frame.ToBitmap();

  30:             }

  31:         }

  32:  

  33:     }

  34: }

7. Run y listo !!!

image

Con poco más de 30 líneas tenemos funcionando nuestro Kinect como una cámara.

 

Saludos @ Home

El Bruno

image image image Google

Leave a comment

Discover more from El Bruno

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

Continue reading