<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">CL</title>
    <link rel="alternate" type="text/html" href="https://codelaboratories.com/forums/" />
    <link rel="self" type="application/atom+xml" href="https://codelaboratories.com/forums/atom/" />
    <updated></updated>
    <rights>Copyright (c) 2014</rights>
    <generator uri="" version="1.6.8">ExpressionEngine</generator>
    <id>tag:https:,2014:04:04</id>


    <entry>
      <title>convert kinect depth image to real world dimensions</title>
      <link rel="alternate" type="text/html" href="https://codelaboratories.com/forums/viewthread/1121/" />      
      <id>tag:https:,2014:/codelaboratories.com/forums/viewthread/.1121</id>
      <published>2014-04-04T18:23:59Z</published>
      <updated></updated>
      <author><name>metwally shoier</name></author>
      <content type="html">
      <![CDATA[
        <p>I am working on a robot that uses kinect to avoid obstacles I am using Visual Studio C++, OpenCV library, and code laboratories drivers (CL NUI Platform).And want to convert the depth image to a real world dimensions.</p>

<p>Thanks in advance</p>

<p> Here is my code:<br />
[// Jim Vaughn<br />
// Displays the color and depth information using OpenCV</p>

<p>#include &#8220;stdafx.h&#8221;</p>

<p>#include &lt;opencv/cv.h&gt;<br />
#include &lt;opencv/cxcore.h&gt;<br />
#include &lt;opencv/highgui.h&gt;</p>

<p>#include &lt;CLNUIDevice.h&gt;</p>

<p><br />
using namespace std;</p>

<p>void displayKinectImage();</p>

<p>int _tmain(int argc, _TCHAR* argv[])<br />
&#123;<br />
&nbsp;   displayKinectImage();<br />
&#125;</p>

<p>void displayKinectImage() &#123;<br />
&nbsp;   PDWORD rgb32_data = (PDWORD)malloc(640 * 480 * 4);<br />
&nbsp;   PDWORD depth32_data = (PDWORD)malloc(640 * 480 * 4);</p>

<p>&nbsp;   CLNUICamera cam = CreateNUICamera(GetNUIDeviceSerial(0));<br />
&nbsp;   CLNUIMotor motor = CreateNUIMotor(GetNUIDeviceSerial(0));</p>

<p>&nbsp;   StartNUICamera(cam);</p>

<p>&nbsp;   cvNamedWindow(&#8220;Image&#8221;, CV_WINDOW_AUTOSIZE);<br />
&nbsp;   cvNamedWindow(&#8220;Depth&#8221;, CV_WINDOW_AUTOSIZE);<br />
&nbsp;   cvNamedWindow(&#8220;Grey&#8221;, CV_WINDOW_AUTOSIZE);</p>

<p>&nbsp;   IplImage *rgb32 = cvCreateImageHeader(cvSize(640, 480), 8, 4);<br />
&nbsp;   IplImage *grey;<br />
&nbsp;   IplImage *depth32 = cvCreateImageHeader(cvSize(640, 480), 8, 4);;</p>

<p>&nbsp;   do &#123;<br />
&nbsp;  &nbsp;  &nbsp; GetNUICameraColorFrameRGB32(cam, rgb32_data);<br />
&nbsp;  &nbsp;  &nbsp; GetNUICameraDepthFrameRGB32(cam, depth32_data);</p>

<p>&nbsp;  &nbsp;  &nbsp; rgb32 = cvCreateImageHeader(cvSize(640, 480), 8, 4);<br />
&nbsp;  &nbsp;  &nbsp; grey = cvCreateImage(cvSize(640, 480), 8, 1);<br />
&nbsp;  &nbsp;  &nbsp; depth32 = cvCreateImageHeader(cvSize(640, 480), 8, 4);</p>

<p>&nbsp;  &nbsp;  &nbsp; cvSetData(rgb32, rgb32_data, rgb32-&gt;widthStep);<br />
&nbsp;  &nbsp;  &nbsp; cvSetData(depth32, depth32_data, depth32-&gt;widthStep);</p>

<p>&nbsp;  &nbsp;  &nbsp; // Convert RGB32 to greyscale<br />
&nbsp;  &nbsp;  &nbsp; cvCvtColor(depth32, grey, CV_RGB2GRAY);</p>

<p>&nbsp;  &nbsp;  &nbsp; cvShowImage(&#8220;Image&#8221;, rgb32);<br />
&nbsp;  &nbsp;  &nbsp; cvShowImage(&#8220;Grey&#8221;, grey);<br />
&nbsp;  &nbsp;  &nbsp; cvShowImage(&#8220;Depth&#8221;, depth32);</p>

<p>&nbsp;  &nbsp;  &nbsp; cvReleaseImageHeader(&rgb32;);<br />
&nbsp;  &nbsp;  &nbsp; cvReleaseImage(&grey;);<br />
&nbsp;  &nbsp;  &nbsp; cvReleaseImageHeader(&depth32;);</p>

<p>&nbsp;  &nbsp;  &nbsp; cvWaitKey(1);</p>

<p>&nbsp;   &#125; while (!GetAsyncKeyState(0x50));</p>

<p><br />
&nbsp;   free(rgb32_data);<br />
&nbsp;   free(depth32_data);</p>

<p>&#125;<br />
]
</p>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Code: Kinect with OpenCV 2.2 in C++</title>
      <link rel="alternate" type="text/html" href="https://codelaboratories.com/forums/viewthread/518/" />      
      <id>tag:https:,2011:/codelaboratories.com/forums/viewthread/.518</id>
      <published>2011-02-03T21:45:00Z</published>
      <updated>2011-02-17T21: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="https://codelaboratories.com/forums/viewthread/422/" />      
      <id>tag:https:,2010:/codelaboratories.com/forums/viewthread/.422</id>
      <published>2010-11-22T21: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="//codelaboratories.com/ee/images/smileys/smile.gif" width="19" height="19" alt="smile" style="border:0;" /></p>

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