Buenas,
antes que me queden obsoletos y mientras sigo participando en el MVP Summit 2012 pero de forma virtual, vamos con algunos de los cambios que tenemos que tener en cuenta si tenemos aplicaciones para Kinect que utilicen el Kinect SDK Beta 2 y pensamos en migrarlas a Kinect SDK V1.0.
Referencias
Inicialmente teníamos una referencia a Microsoft.Research.Kinect
Con el nuevo SDK tenemos que resolver la referencia inválida y agregar una nueva a Microsoft.Kinect.
Inicialización del Sensor
Cuando utilizábamos la Beta 2, teníamos que definir la inicialización del sensor utilizando el método Initalize() y al mismo le pasábamos una serie de parámetros para inicializar la cámara, el sensor de profundidad o la detección de skeletons.
1: void InitKinect()
2: {
3: if (Runtime.Kinects.Count == 0)
4: return;
5: kinect = Runtime.Kinects[0];
6: RuntimeOptions = RuntimeOptions.UseDepthAndPlayerIndex |
7: RuntimeOptions.UseSkeletalTracking |
8: RuntimeOptions.UseColor;
9: kinect.Initialize(RuntimeOptions);
10: kinect.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240,
11: RuntimeOptions.HasFlag(RuntimeOptions.UseDepthAndPlayerIndex) ||
12: RuntimeOptions.HasFlag(RuntimeOptions.UseSkeletalTracking) ?
13: ImageType.DepthAndPlayerIndex : ImageType.Depth);
14: kinect.DepthFrameReady += this.KinectDepthFrameReady;
15: }
Con el SDK V1.0 esto es mucho más simple. Creo que el siguiente código, donde solo se inicializa el sensor de profundidad, es lo suficientemente declarativo como para que se entienda que ahora lo importante está en la línea 7.
1: void MainWindowLoaded(object sender, RoutedEventArgs e)
2: {
3:
4: if (KinectSensor.KinectSensors.Count == 0)
5: return;
6: this.kinectSensor = KinectSensor.KinectSensors[0];
7: this.kinectSensor.DepthStream.Enable();
8: this.kinectSensor.Start();
9: this.kinectSensor.DepthFrameReady += this.KinectSensorDepthFrameReady;
10: }
Si además del sensor de profundidad quisiésemos activar el stream de la cámara y además el reconocimiento de skeletons, el siguiente código es el que tenemos que utilizar. Las líneas 7, 8l y 9 son las importantes.
1: void MainWindowLoaded(object sender, RoutedEventArgs e)
2: {
3:
4: if (KinectSensor.KinectSensors.Count == 0)
5: return;
6: this.kinectSensor = KinectSensor.KinectSensors[0];
7: this.kinectSensor.ColorStream.Enable();
8: this.kinectSensor.SkeletonStream.Enable();
9: this.kinectSensor.DepthStream.Enable();
10: this.kinectSensor.Start();
11: this.kinectSensor.DepthFrameReady += this.KinectSensorDepthFrameReady;
12: }
En próximos posts otros ejemplos sobre algunos cambios desde Beta 2 al SDK Final.
Saludos @ Home
El Bruno
Download: http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx


Leave a comment