PacktLib: Kinect for Windows SDK Programming Guide

Kinect for Windows SDK Programming Guide

Credits

About the Author

Acknowledgement

About the Reviewers

www.PacktPub.com

Preface

Understanding the Kinect Device

Components of Kinect for Windows

Kinect for Windows versus Kinect for Xbox

Where can you use Kinect

Summary

Getting Started

System requirements for the Kinect for Windows SDK

Evaluation of the Kinect for Windows SDK

Downloading the SDK and the Developer Toolkit

Installing Kinect for Windows SDK

Testing your device

Looking inside the Kinect SDK

Features of the Kinect for Windows SDK

The Kinect for Windows Developer Toolkit

Making your development setup ready

The Coding4Fun Kinect Toolkit

Summary

Starting to Build Kinect Applications

How applications interact with the Kinect sensor

Kinect Info Box – your first Kinect application

Dealing with the Kinect status

Summary

Getting the Most out of Kinect Camera

Understanding the Kinect image stream

Different ways of retrieving the color stream from Kinect

KinectCam – a Kinect camera application

Enabling the color stream channel

Looking inside color image stream helpers

Capturing frames on demand

Extending the KinectCam

Applying more effects to the camera

Seeing in low light

Making your application perform better

Using the Coding4Fun toolkit

Summary

The Depth Data – Making Things Happen

Understanding the depth data stream

Capturing and processing depth data

Looking inside depth image stream helpers

Depth data and distance

Working with depth range

Depth data distribution

Player index with depth data

Getting the depth and player index automatically

A 3D view of depth data

Summary

Human Skeleton Tracking

How skeleton tracking works

Skeleton tracking with the Kinect SDK

Start tracking skeleton joints

Flow – capturing skeleton data

An intrusion detector camera application

Looking inside skeleton stream helpers

Skeleton-tracking mode

Skeleton tracking in near mode

The Skeleton

Choosing which skeleton to track

The building blocks – Joints and JointCollection

Steps to be followed for joint tracking

Create your own joints data point

Bones – connecting joints

Adjusting the Kinect sensor automatically and giving live feedback to users

Skeleton smoothing – soften the skeleton's movement

Skeleton space transformation

The Advanced Skeleton Viewer application

Debugging the applications

Getting data frames together

Summary

Using Kinect's Microphone Array

Verifying the Kinect audio configuration

Using the Kinect microphone array with your computer

The Kinect SDK architecture for Audio

Kinect microphone array

Audio signal processing in Kinect

Taking control over the microphone array

Kinect sound recorder – capturing Kinect audio data

Processing the audio data

Sound source localization

Summary

Speech Recognition

How speech recognition works

Using Kinect with your Windows PC speech recognition

Beginning with Microsoft Speech API (SAPI)

Draw What I Want – a speech-enabled application

Summary

Building Gesture-controlled Applications

What is a gesture

Approaches for gesture recognition

Basic gesture recognition

Algorithmic gesture recognition

Weighted network gesture recognition

Template-based gesture recognition

Building gesture-enabled controls

The Basic Interaction – a WPF application

Key things to remember

Summary

Developing Applications Using Multiple Kinects

Setting up the environment for multiple Kinects

Multiple Kinects – how to reduce interference

Detecting multiple Kinects

Developing an application with multiple Kinects

Controlling multiple sensor status changes

Handling a failover scenario using Kinects

Challenges faced in developing applications using multiple Kinects

Applications where multiple Kinects can be used

Summary

Putting Things Together

Taking Kinect to the Cloud

Remotely using the Kinect with Windows Phone

Using Kinect with a Netduino microcontroller

Augmented reality applications

Working with face tracking

Working with XNA and a 3D avatar

Summary

Index