Skip to main content

Coding for Kinect for Xbox 360

Kinect is an amazing piece of technology. Not only for gaming, it can be used for variety of uses ranging from Healthcare, Security, IT etc. Starting with coding for Kinect seems daunting at first, mainly due to lack of knowledge and starting material.
This article documents my first attempt at coding for Kinect. So basically it’s a beginner level article which introduces us to Kinect. Before you begin, you must ensure that the following pre-requisites have been met.
After you install the Kinect for Windows SDK, plug-in your Kinect to your PC via the USB port and some device drivers should automatically get installed. Finally you should be able to see this screen.

Capture

Now that you have all set up, fire up Visual Studio and create a new WPF project. Add a reference to “Microsoft.Research.Kinect.dll” and “Coding4Fun.Kinect.Wpf.dll”. Next we will create a very basic application which captures Kinect’s RGB Video, Depth Video and try to create a Skeleton out of it. We will basically re-use the code from “Skeletal Viewer” sample that comes with Kinect for Windows SDK.


We will add two images to our XAML window to display the video streams. We will also add a Canvas to display the skeleton that we are tracking. Pretty simple!

<Window x:Class="MyFirstKinectApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" WindowState="Maximized" Loaded="Window_Loaded">
<Grid>
<Image x:Name="VideoFrameImage"
Height="500" Width="500" HorizontalAlignment="Left"
VerticalAlignment="Top"/>
<Canvas x:Name="SkeletalFrameImage"
Height="500" Width="500" HorizontalAlignment="Right"
VerticalAlignment="Top"/>
<Image x:Name="DepthFrameImage"
Height="500" Width="500" HorizontalAlignment="Left"
VerticalAlignment="Bottom"/>
</Grid>
</Window>

Coding4Fun dll helpfully add few extension methods which makes displaying the video streams a breeze. All we have to do is write:


VideoFrameImage.Source = e.ImageFrame.ToBitmapSource();

Next comes calculating and displaying the skeleton in the Canvas. You can follow the source code to see how it is actually being done.


Finally we end up with the following output:

vlcsnap-2011-10-22-19h33m10s33

That’s it! This is our sample sample application. As you move, the skeleton will mirror your movements. All we have to do now is to detect those movements and have some fun!

Comments

Popular posts from this blog

The IKEA Pilgrimage

"Hez!". If you were in Hyderabad for the opening of first IKEA store in India, you would be forgiven for thinking that it's a religious chant for followers of a religion who are trampling over themselves for getting into their place of worship. Except they were visitors to the new IKEA store.
For the past few days, the news had been carrying multitude of articles related to IKEA opening. The marketing by IKEA team only hyped the situation. Since I was looking to buy a bed, I made the unfortunate decision of going to the IKEA store for a quick in-n-out shopping with my wife on my way to office. The first red flag should have been when we couldn't get parking at 10 am in the morning of a weekday and were asked to park at one of external parking locations. The IKEA folks were kind enough to handout a map of the same.

We were asked to park near ITC Kohenur. From that location, like every well organized pilgrimage, there was a shuttle service to IKEA after every 30 minut…

Book Review - The Girl In Room 105

There are couple of reasons why I pre-ordered Chetan Bhagat's latest - its price is less than a cup of decent coffee making it an impulse purchase and more importantly the book's claim that it is an "unlove story", whatever that means. Bhagat had pioneered the trend of bubblegum IIT college love stories targeted at teens and college-going population which inspired a generation of wannabe writers. But you can chew bubblegum only for so long. After some time you have to spit it out. With this book Bhagat threw away the bubblegum only for it to stick to his shoes.
The story starts the same way as have Bhagat's previous books - in a college and more specifically in an IIT. For initial few chapters you would be forgiven if you think you have picked up one of Bhagat's previous works by mistake. Bhagat is still obsessed with fair skin, women's churidar kurta and how she arranges her hair. The English is still pedestrian which Bhagat justifies as this is how rea…

Pi Hole - Ad blocking (Turbocharged!)

The entire internet is now made up of ads. To easily navigate it and find the information you are looking for, most people use ad blocking software. It improves page loading times and also uses less data (sometimes by up to 10 times!)
Google Chrome is the de facto browser of choice for most people. Google's main business is advertising. So you can see how ad-blocking software collides with Google's business objectives. When Chrome was trying to be popular, it started allowing plugins like AdBlock Plus etc. Then slowly it started partnering with them for "Acceptable Ads Program" for a lot of money. Now after cementing its position as the most popular browser, Google is now coming down hard on ad blocking software. It is turning off a Chrome API (webRequest API) which most ad blocking plug-ins use to block ads.
Enter Pi Hole. This is an amazing use of Raspberry Pi which blocks ads before they enter your network. It keeps a blacklist of most popular ad serving domains …