Vanguarsoft Developers blog

Ing. Javier Leal – Coordinador de Requerimientos en Traetelo.com / Traiter Lourted – VENEZUELA

Kinect para Silverlight 5

5 comentarios

PosterImage

 Hola amigos ya es posible el uso de Kinect for Windows en Silverlight en su version 5, la dll la pueden descargar de la siguiente pagina:

http://kinectforsilverlight.codeplex.com/

Junto con su codigo fuente lo puedes descargar este ya trae un proyecto de ejemplo el cual puedes ver para comenzar a analizar la forma de instancia el sensor y sus eventos. los pasos son sencillos:

Paso 1. Agrega dentro de tu proyecto Silverlight la referencia a la DLL descargada

image

Paso 2. Para hace el uso del sensor hay que hacer incapia que debe esta la aplicacion corriendo en confianza elevada y y fuera del navegador.

private KinectSensor sensor;

if (!App.Current.IsRunningOutOfBrowser) {

                notification.Text = "Necesita que corra fuera del Navegador";

 

            } else {

 

                if (!App.Current.HasElevatedPermissions) {

                    notification.Text = "Necesita confianza elevada

 

                } else {

                    sensor = KinectSensor.GetKinectSensor();   

if (!sensor.IsRunning)

    sensor.Start(KinectSensorOptions.UseSkeleton | KinectSensorOptions.UseColor | KinectSensorOptions.UseDepth);      

if (!sensor.SkeletonStream.IsEnabled)

    sensor.SkeletonStream.Enable();

sensor.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(sensor_SkeletonFrameReady);               }

Paso 3. Si ya has programado en Kinect ya me imagino que sabes que hacer con este evento.. eso es todo manos a la obra, puede hacer algo como dibujar el esqueleto en un canvas.

private void sensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) {

 

           Dispatcher.BeginInvoke(() => {

               var skeletons = (from s in e.SkeletonFrame.Skeletons

                                where s.TrackingState == SkeletonTrackingState.Tracked

                                select s).ToArray();

 

               if (skeletons.Length > 0) {

 

                   skeletonCanvas.Children.Clear();

 

                   var joints = skeletons[0].Joints;

 

                   Draw(joints[JointType.Head], joints[JointType.ShoulderCenter]);

                   Draw(joints[JointType.ShoulderCenter], joints[JointType.Spine]);

                   Draw(joints[JointType.Spine], joints[JointType.HipCenter]);

                   Draw(joints[JointType.HipCenter], joints[JointType.HipLeft]);

                   Draw(joints[JointType.HipLeft], joints[JointType.KneeLeft]);

                   Draw(joints[JointType.KneeLeft], joints[JointType.AnkleLeft]);

                   Draw(joints[JointType.AnkleLeft], joints[JointType.FootLeft]);

                   Draw(joints[JointType.HipCenter], joints[JointType.HipRight]);

                   Draw(joints[JointType.HipRight], joints[JointType.KneeRight]);

                   Draw(joints[JointType.KneeRight], joints[JointType.AnkleRight]);

                   Draw(joints[JointType.AnkleRight], joints[JointType.FootRight]);

                   Draw(joints[JointType.ShoulderCenter], joints[JointType.ShoulderLeft]);

                   Draw(joints[JointType.ShoulderLeft], joints[JointType.ElbowLeft]);

                   Draw(joints[JointType.ElbowLeft], joints[JointType.WristLeft]);

                   Draw(joints[JointType.WristLeft], joints[JointType.HandLeft]);

                   Draw(joints[JointType.ShoulderCenter], joints[JointType.ShoulderRight]);

                   Draw(joints[JointType.ShoulderRight], joints[JointType.ElbowRight]);

                   Draw(joints[JointType.ElbowRight], joints[JointType.WristRight]);

                   Draw(joints[JointType.WristRight], joints[JointType.HandRight]);

               }

           });

       }

Espero que les guste, Saludos.

Anuncios

Autor: Ing. Javier J. Leal H.

Coordinador de Requerimientos en Traetelo.com, Trainer en Lourted, Amantes de nuevas Tecnologías Desarrollador es .NET, Windows 10, Influenciador y Orador en Actividades Tecnológicas Microsoft.

5 pensamientos en “Kinect para Silverlight 5

  1. Hola Javier, que interesante es el desarrollo para kinect, como ya te he mencionado antes también quiero incursionar en esta tecnología, solo que tengo la limitante de no contar con un kinect.. Estoy siguiendo poco a poco tus post sobre kinect, espero pronto tener uno para comenzar a desarrollar.. Saludos..

    • Ok miguel asi es cuando quieras te puedes acercar y mostrarte eh visto que la comunidad ha mostrado el kinect en eventos por que no lo usas para desarrollar junto con ellos y aprendes??

  2. Hola Javier,

    ¿Podrías, por favor, enviarnos el método Draw?

    Muchas gracias. Saludos. Daniel.

    • Hola Daniel claro déjame buscar de nuevo el proyecto y te lo envió dame un chance, y debería de ser un canvas lo que se utiliza es un proyecto que descargue ya hecho la mayoría de mis desarrollos en kinect los eh hecho en WPF pero las diferencia de usarlo en silverlight no es mucho

  3. ¿Para dibujar el esqueleto utilizas un canvas?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s