<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">Code Laboratories</title>
    <link rel="alternate" type="text/html" href="http://codelaboratories.com/forums/" />
    <link rel="self" type="application/atom+xml" href="http://codelaboratories.com/forums/atom/" />
    <updated>2011-02-18T05:22:28Z</updated>
    <rights>Copyright (c) 2011</rights>
    <generator uri="" version="1.6.8">ExpressionEngine</generator>
    <id>tag:codelaboratories.com,2011:08:20</id>


    <entry>
      <title>Code: Kinect with OpenCV 2.2 in C++</title>
      <link rel="alternate" type="text/html" href="http://codelaboratories.com/forums/viewthread/518/" />      
      <id>tag:codelaboratories.com,2011:forums/viewthread/.518</id>
      <published>2011-02-04T05:45:00Z</published>
      <updated>2011-02-18T05:22:28Z</updated>
      <author><name>thesmileman</name></author>
      <content type="html">
      <![CDATA[
        <p>A lot of people on this forum and around these here interwebs have been asking how to get the kinect working with OpenCV in C++. Here is the basic code to display the RGB image and the depth image as both a colormap and as greyscale. This is for OpenCV 2.2 which is the latest version. If you want to use an earlier version your includes will be different.</p>

<p>NOTE: The calls to StopNUICamera(), DestroyNUIMotor(motor), and DestroyNUICamera() are commented out because they still throw an error when called. It doesn&#8217;t seem to be a problem though.</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF8000">//&nbsp;Jim&nbsp;Vaughn<br />//&nbsp;Displays&nbsp;the&nbsp;color&nbsp;and&nbsp;depth&nbsp;information&nbsp;using&nbsp;OpenCV<br /><br />#include&nbsp;"stdafx.h"<br /><br />#include&nbsp;&lt;opencv/cv.h&gt;<br />#include&nbsp;&lt;opencv/cxcore.h&gt;<br />#include&nbsp;&lt;opencv/highgui.h&gt;<br /><br />#include&nbsp;&lt;CLNUIDevice.h&gt;<br /><br /><br /></span><span style="color: #0000BB">using&nbsp;</span><span style="color: #007700">namespace&nbsp;</span><span style="color: #0000BB">std</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">void&nbsp;displayKinectImage</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">int&nbsp;_tmain</span><span style="color: #007700">(</span><span style="color: #0000BB">int&nbsp;argc</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">_TCHAR</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">argv&#91;&#93;</span><span style="color: #007700">)<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;displayKinectImage</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">&#125;<br /><br />void&nbsp;displayKinectImage</span><span style="color: #007700">()&nbsp;</span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;PDWORD&nbsp;rgb32_data&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">PDWORD</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">malloc</span><span style="color: #007700">(</span><span style="color: #0000BB">640</span><span style="color: #007700">*</span><span style="color: #0000BB">480</span><span style="color: #007700">*</span><span style="color: #0000BB">4</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">PDWORD&nbsp;depth32_data&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">PDWORD</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">malloc</span><span style="color: #007700">(</span><span style="color: #0000BB">640</span><span style="color: #007700">*</span><span style="color: #0000BB">480</span><span style="color: #007700">*</span><span style="color: #0000BB">4</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CLNUICamera&nbsp;cam&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CreateNUICamera</span><span style="color: #007700">(</span><span style="color: #0000BB">GetNUIDeviceSerial</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CLNUIMotor&nbsp;motor&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CreateNUIMotor</span><span style="color: #007700">(</span><span style="color: #0000BB">GetNUIDeviceSerial</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">StartNUICamera</span><span style="color: #007700">(</span><span style="color: #0000BB">cam</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvNamedWindow</span><span style="color: #007700">(</span><span style="color: #DD0000">"Image"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CV_WINDOW_AUTOSIZE</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvNamedWindow</span><span style="color: #007700">(</span><span style="color: #DD0000">"Depth"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CV_WINDOW_AUTOSIZE</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvNamedWindow</span><span style="color: #007700">(</span><span style="color: #DD0000">"Grey"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CV_WINDOW_AUTOSIZE</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">IplImage&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">rgb32&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">cvCreateImageHeader</span><span style="color: #007700">(</span><span style="color: #0000BB">cvSize</span><span style="color: #007700">(</span><span style="color: #0000BB">640</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">480</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">IplImage&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">grey</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">IplImage&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">depth32&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">cvCreateImageHeader</span><span style="color: #007700">(</span><span style="color: #0000BB">cvSize</span><span style="color: #007700">(</span><span style="color: #0000BB">640</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">480</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">);;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;</span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetNUICameraColorFrameRGB32</span><span style="color: #007700">(</span><span style="color: #0000BB">cam</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">rgb32_data</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">GetNUICameraDepthFrameRGB32</span><span style="color: #007700">(</span><span style="color: #0000BB">cam</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">depth32_data</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">rgb32&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">cvCreateImageHeader</span><span style="color: #007700">(</span><span style="color: #0000BB">cvSize</span><span style="color: #007700">(</span><span style="color: #0000BB">640</span><span style="color: #007700">,</span><span style="color: #0000BB">480</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">grey&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">cvCreateImage</span><span style="color: #007700">(</span><span style="color: #0000BB">cvSize</span><span style="color: #007700">(</span><span style="color: #0000BB">640</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">480</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">depth32&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">cvCreateImageHeader</span><span style="color: #007700">(</span><span style="color: #0000BB">cvSize</span><span style="color: #007700">(</span><span style="color: #0000BB">640</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">480</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">8</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvSetData</span><span style="color: #007700">(</span><span style="color: #0000BB">rgb32</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">rgb32_data</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">rgb32</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">widthStep</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvSetData</span><span style="color: #007700">(</span><span style="color: #0000BB">depth32</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">depth32_data</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">depth32</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">widthStep</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Convert&nbsp;RGB32&nbsp;to&nbsp;greyscale<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvCvtColor</span><span style="color: #007700">(</span><span style="color: #0000BB">depth32</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">grey</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CV_RGB2GRAY</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvShowImage</span><span style="color: #007700">(</span><span style="color: #DD0000">"Image"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">rgb32</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvShowImage</span><span style="color: #007700">(</span><span style="color: #DD0000">"Grey"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">grey</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvShowImage</span><span style="color: #007700">(</span><span style="color: #DD0000">"Depth"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">depth32</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvReleaseImageHeader</span><span style="color: #007700">(&amp;</span><span style="color: #0000BB">rgb32</span><span style="color: #007700">;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvReleaseImage</span><span style="color: #007700">(&amp;</span><span style="color: #0000BB">grey</span><span style="color: #007700">;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvReleaseImageHeader</span><span style="color: #007700">(&amp;</span><span style="color: #0000BB">depth32</span><span style="color: #007700">;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cvWaitKey</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#125;&nbsp;</span><span style="color: #007700">while&nbsp;(!</span><span style="color: #0000BB">GetAsyncKeyState</span><span style="color: #007700">(</span><span style="color: #0000BB">0x50</span><span style="color: #007700">));<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">free</span><span style="color: #007700">(</span><span style="color: #0000BB">rgb32_data</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">free</span><span style="color: #007700">(</span><span style="color: #0000BB">depth32_data</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//StopNUICamera(cam);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//DestroyNUIMotor(motor);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//DestroyNUICamera(cam);<br /><br /></span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Getting started with Kinect</title>
      <link rel="alternate" type="text/html" href="http://codelaboratories.com/forums/viewthread/422/" />      
      <id>tag:codelaboratories.com,2010:forums/viewthread/.422</id>
      <published>2010-11-23T05:46:38Z</published>
      <updated></updated>
      <author><name>fodi</name></author>
      <content type="html">
      <![CDATA[
        <p>Hi,</p>

<p>I&#8217;m an ASP.Net developer and I only found out that the Kinect had been &#8216;Windows 7 enabled&#8217; this morning. I rushed straight out and grabbed one.</p>

<p>I want to make this my summer (in Australia) project. I don&#8217;t have much experience working with cameras, motors, accelerometers, etc..</p>

<p>Can someone suggest a good place to get started? Books, code samples, all welcome. I&#8217;d prefer to stick with C# if possible, but I can jump into C if necessary.</p>

<p><br />
Thanks and Thanks to AlexP <img src="http://codelaboratories.com/ee/images/smileys/smile.gif" width="19" height="19" alt="smile" style="border:0;" /></p>

<p>-fodi
</p>
      ]]>
      </content>
    </entry>


</feed>

