150 likes | 281 Views
Work With Depth Data. Kinect for Windows Video Courses Jan 2013. Demo: How to get depth data. Kinect For Windows SDK & Toolkit. Download SDK & Toolkit: http://www.microsoft.com/en-us/kinectforwindows/ Install SDK & Toolkit. Install examples provided in toolkit ( DepthBasics -WPF).
E N D
Work WithDepth Data Kinect for Windows Video Courses Jan 2013
Kinect For Windows SDK & Toolkit Download SDK & Toolkit: http://www.microsoft.com/en-us/kinectforwindows/ Install SDK & Toolkit. Install examples provided in toolkit (DepthBasics-WPF)
4 Steps to Get Depth Data Find an available Kinect sensor. Enable depth data stream. Register stream ready event handler function. Start capturing data.
4 Steps to Get Depth Data – Find an available Kinect Sensor KinectSensor object represents a Kinect sensor entity. Enumerate all Kinect sensors and find a usable one. foreach (varpotentialSensorinKinectSensor.KinectSensors) { if (potentialSensor.Status==KinectStatus.Connected) { this.sensor=potentialSensor; break; } }
4 Steps to Get Depth Data – Find an available Kinect Sensor Status of Kinect sensor: • Disconnected – Sensor has been plugged off USB port. • Connected – Sensor is ready to use. • Initializing – Sensor is being initialized. • Not powered – Sensor is connected to USB port but power line is disconnected.
4 Steps to Get Depth Data – Enable depth data stream KinectSensor.DepthStream implements API functions related to depth data retrieving and processing. Initialize to enable depth data stream: this.sensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
4 Steps to Get Depth Data – Register Stream Ready Event Handler Function Register the stream event handler function to Kinect sensor so that when a new depth frame comes in, the handler function is called to retrieve and process the data. this.sensor.DepthFrameReady+=this.SensorDepthFrameReady;
4 Steps to Get Depth Data – Start Kinect sensor Call KienctSensor.Start() to let Kinect sensor begin capturing the data. try { this.sensor.Start(); } catch(IOException) { this.sensor=null; }
Retrieve depth data When new incoming data frame is ready, stream data ready event is triggered. Open image frame in stream data ready event handler function. privatevoidSensorDepthFrameReady(objectsender, DepthImageFrameReadyEventArgse) { using (DepthImageFramedepthFrame=e.OpenDepthImageFrame()) { if (depthFrame!=null) { // Copy the pixel data from the image to a temporary array dpethFrame.CopyDepthImagePixelDataTo(this.depthPixels); // Do whatever you need to do with the depth data } } }
Depth Pixel In each pixel, there are 2 kinds of important information: • Depth – The distance in millimeters between the detected objects and the sensor. This information is presented in a “short” type value. • Player Index – If Kinect successfully detected a human, it assigns an index number to the pixels which belong to the person (called player). Kinect can trace up to 6 players so valid player index is ranged from 1 to 6. 0 is assigned to indicate the pixel does not belong to any player. This information is also presented in a “short” type value.
Color • Introduction to color stream • Demo: How to get color data • Demo: ColorBasics sample • Overview • Hardware overview and • SDK installation • Depth • Introduction to depth stream • Demo: How to get depth data • Demo: DepthBasics sample • Skeleton • Introduction to skeleton stream • Demo: How to get skeleton data • Demo: SkeletonBasics sample • Audio • Introduction to audio stream • Demo: How to capture audio • Demo: Speech recognition • Advanced Topics • Streams sync and coordinate mapping • Demo: Streams sync and coordinates mapping • Accelerometer and tilt angle • Demo: How to get accelerometer and tilt angle
Learn More About Kinect for Windows in MSDN http://msdn.microsoft.com/en-us/library/hh855352
Thanks Contact us: http://social.msdn.microsoft.com/Forums/en-US/kinectsdk