Ask Your Question
0

Raw disparity aquisition for Kinect camera

asked 2014-10-21 09:25:44 -0600

vahid gravatar image

Hello,

I have a kinect camera. I compiled opencv with OpenNI and KinectSensor driver. I am using VideoCapture class with CV_CAP_OPENNI for kinect camera. The VideoCapture class only supports two modes for disparity data aquisition:

CV_CAP_OPENNI_DISPARITY_MAP - disparity in pixels (CV_8UC1)

CV_CAP_OPENNI_DISPARITY_MAP_32F - disparity in pixels (CV_32FC1)

The CV_CAP_OPENNI_DISPARITY_MAP mode retrieves disparity data in an 8bit integer format, but we know Kinect camera measures disparity in 10bit !!! How can I access 10bit disparity values ?

In addition, the CV_CAP_OPENNI_DISPARITY_MAP_32F provides floating point disparity values in pixels, how are these values related to 10bit disparity values of Kinect ? Can I convert float disparity values to their original 10bit values ?

Third question: What is the exact relation between depth values and 10bit disparity values of Kinect camera ?

Regards

Vahid

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
0

answered 2014-10-22 03:46:19 -0600

kbarni gravatar image

updated 2014-10-22 11:08:33 -0600

[edit] Sorry, my previous (deleted) answer was wrong: the disparity map is the difference between the projected and the recorded IR image. See vahid's answer...


edit flag offensive delete link more

Comments

The Kinect camera has an IR projector, an IR camera, and a RGB camera. The disparity values are computed by IR camera and IR projector. I know that Kinect camera computes disparity values as 11bit integers according to papers and documentations on Kinect. I need to access the 11bit disparity image. I think the PCL library provides such an image, but I prefer to use opencv. Take a look at this page: http://docs.pointclouds.org/trunk/classopenni__wrapper_1_1_shift_to_depth_converter.html

The disparity raw data are also called shift data.

Thanks

vahid gravatar imagevahid ( 2014-10-22 05:31:55 -0600 )edit

I read cap_openni.cpp file. It seems the floating point disparity values are based on openni depth values. They are not raw integer disparity output of Kinect and their relation to integer disparity is not clear.

vahid gravatar imagevahid ( 2014-10-22 06:10:02 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2014-10-21 09:25:44 -0600

Seen: 837 times

Last updated: Oct 22 '14