Intrinsic Camera Calibration of the Kinect
The Kinect has a factory calibration stored onboard, based on a high level polynomial warping function. The OpenNI driver uses this calibration for undistorting the images, and for registering the depth images (taken by the IR camera) to the RGB images. Therefore, the depth images in our datasets are reprojected into the frame of the color camera, which means that there is a 1:1 correspondence between pixels in the depth map and the color image.
As a result, the conversion from the 2D images to 3D point clouds is the same for all datasets:
focalLength = 525.0 centerX = 319.5 centerY = 239.5 for v in range(depth_image.height): for u in range(depth_image.width): X = (u - centerX) * depth_image[v,u] / depthFocalLength; Y = (v - centerY) * depth_image[v,u] / depthFocalLength; Z = d;