Note that there are some explanatory texts on larger screens.

plurals
  1. POMicrosoft Kinect SDK Depth calibration
    primarykey
    data
    text
    <p>I am working on a 3D model reconstruction application with Kinect sensor. I use Microsoft SDK to get depth data, I want to calculate the location of each point in the real-world. I have read several articles about it and I have implemented several depth-calibration methods but all of them do not work in my application. the closest calibration was <a href="http://openkinect.org/wiki/Imaging_Information" rel="nofollow">http://openkinect.org/wiki/Imaging_Information</a> but my result in Meshlab was not acceptable. I calculate depth value by this method:</p> <pre><code> private double GetDistance(byte firstByte, byte secondByte) { double distance = (double)(firstByte &gt;&gt; 3 | secondByte &lt;&lt; 5); return distance; } </code></pre> <p>and then I used below methods to calculate distance of real-world</p> <pre><code> public static float RawDepthToMeters(int depthValue) { if (depthValue &lt; 2047) { return (float)(0.1 / ((double)depthValue * -0.0030711016 + 3.3309495161)); } return 0.0f; } public static Point3D DepthToWorld(int x, int y, int depthValue) { const double fx_d = 5.9421434211923247e+02; const double fy_d = 5.9104053696870778e+02; const double cx_d = 3.3930780975300314e+02; const double cy_d = 2.4273913761751615e+02; double depth = RawDepthToMeters(depthValue); Point3D result = new Point3D((float)((x - cx_d) * depth / fx_d), (float)((y - cy_d) * depth / fy_d), (float)(depth)); return result; } </code></pre> <p>these methods did not work well and generated scene was not correct. then I used below method, the result is better than previous method but it is not acceptable yet.</p> <pre><code> public static Point3D DepthToWorld(int x, int y, int depthValue) { const int w = 640; const int h = 480; int minDistance = -10; double scaleFactor = 0.0021; Point3D result = new Point3D((x - w / 2) * (depthValue + minDistance) * scaleFactor * (w/h), (y - h / 2) * (depthValue + minDistance) * scaleFactor,depthValue); return result; } </code></pre> <p>I was wondering if you let me know how can I calculate real-world position based on my depth pixel values calculating by my method.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload