简体   繁体   中英

Kinect 3D to 2D bias

I am struggling with the interpretation of kinect depth data.

In order to obtain real world distance from kinect, i used the following formula :

  if(i<2047){
        depthToMeterTable[i] = i * -0.0030711016  + 3.3309495161; 
    }
    else{
        depthToMeterTable[i] = 0;
    }

This formula gives something pretty good as a distance estimator.

However i do obtain strange output from a 90° wall corner visualisation.

On the following image is two different information. First, the violet lines represent the wall as i SHOULD see it. A 90° corner. The red dots represent the wall seen from the kinect. As you can see, the angle of the two planes is now bigger.

http://img843.imageshack.us/img843/4061/kinectbias.jpg

Do you have any idea where i could correct this bias, and how to do it ?

Thank you for reading,

Al_th

I'm not familiar with that conversion formula (also not sure how your depthToMeterTable gets filled - what formula is used there).

There's a built-in function in libfreenect for that though: freenect_camera_to_world

Before that utility function was added I used Matt Fischer's conversion functions (RawDepthToMeters and DepthToWorld).

HTH

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM