Documentos de Académico
Documentos de Profesional
Documentos de Cultura
edogaru.net
Qu es kinect?
Es un dispositivo que combina:
una cmara de profundidad una cmara de video VGA un conjunto de micrfonos de alta calidad.
Qu es lo que ve el kinect?
El kinect proyecta una grilla de puntos
infrarrojos invisibles al ojo humano, pero detectables por su sensor. Pudiendo medir la distancia en milmetros de cada punto al sensor.
si solo. Sino que la computadora lo hace mediante un algoritmo que reconoce las partes del cuerpo humano. Se puede ver una descripcin del algoritmo en ste articulo en:
http://research.microsoft.com/apps/pubs/?id=145347
computadora obviamente necesitamos los drivers necesarios. Actualmente existen dos principales opciones: OpenNI (Open source) y Kinect SDK (Oficial) El ms sencillo de instalar y configurar es el Kinect SDK, que es con el que vamos a continuar aqu.
Edgar Talamantes Ortega edogaru.net
desconectado, cuando termin se conecta el Kinect y automticamente lo reconocer. Para probar puedes ejecutar:
Sample Skeletal Viewer Sample Shape Game
Edgar Talamantes Ortega edogaru.net
dar una leda a la gua de programacin del Kinect SDK, donde se aclaran muchas dudas y conceptos.
Descargar gua de programacin
Lamentablemente solo est disponible en ingles, espero que eso no sea un problema =P
Configurar un proyecto
Utilizando Visual C# vamos a crear un
proyecto que despliegue nuestra imagen desde la cmara de profundidad. Para simplificar las cosas usaremos el toolkit provisto por Coding4Fun
Descargar Coding4Fun Kinect toolkit
Configurar un proyecto
Pasos: 1. Crear un nuevo proyecto de windows form
Configurar un proyecto
3. Agregar las sentencias using
using Microsoft.Research.Kinect.Nui; using Coding4Fun.Kinect.WinForm;
de la clase Form1
Runtime kinect;
La clase Runtime es la que nos permite interactuar con el kinect, contiene todos los metodos y propiedades necesarios.
Edgar Talamantes Ortega edogaru.net
10
Configurar un proyecto
5. Debemos inicializar el Runtime en la funcin
//Instanciamos nuestro runtime kinect = new Runtime(); //Inicializamos el runtime usando la cmara de profundidad kinect.Initialize(RuntimeOptions.UseDepthAndPlayerIndex); //Abrimos el canal de depthstream kinect.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240, ImageType.DepthAndPlayerIndex); //Asignamos un administrador de eventos para capturar los nuevos datos kinect.DepthFrameReady +=new EventHandler<ImageFrameReadyEventArgs>(kinect_DepthFrameReady);
Edgar Talamantes Ortega edogaru.net
11
Configurar un proyecto
6. Por ltimo, debemos establecer que va a hacer nuestro administrador de eventos para el
depthstream
void kinect_DepthFrameReady(Object sender, ImageFrameReadyEventArgs e) { pictureBox1.Image = e.ImageFrame.ToBitmap(); }
12
Configurar un proyecto
Con esto tenemos el siguiente resultado. Se que no es muy impresionante, pero me parece una buena forma de empezar. El cdigo fuente
est disponible
en edgaru.net
13