FREENECT_DEPTH_REGISTERED has no effect with libfreenect

前端 未结 1 1087
生来不讨喜
生来不讨喜 2021-02-10 13:51

I\'m playing around with a Kinect (the original Xbox version) on the libfreenect driver (I\'m on Ubuntu 12.04 by the way). I have cloned the most recent version from git and ins

相关标签:
1条回答
  • 2021-02-10 14:16

    Both FREENECT_DEPTH_MM and FREENECT_DEPTH_REGISTERED should return depth in mm. The difference is that the latter is aligned to match the RGB video image.

    The freenect_depth_format enum in libfreenect.h gives these options:

    FREENECT_DEPTH_11BIT = 0, /**< 11 bit depth information in one uint16_t/pixel */
    FREENECT_DEPTH_10BIT = 1, /**< 10 bit depth information in one uint16_t/pixel */
    FREENECT_DEPTH_11BIT_PACKED = 2, /**< 11 bit packed depth information */
    FREENECT_DEPTH_10BIT_PACKED = 3, /**< 10 bit packed depth information */
    FREENECT_DEPTH_REGISTERED = 4, /**< processed depth data in mm, aligned to 640x480 RGB */
    FREENECT_DEPTH_MM = 5, /**< depth to each pixel in mm, but left unaligned to RGB image */
    FREENECT_DEPTH_DUMMY = 2147483647, /**< Dummy value to force enum to be 32 bits wide */
    

    Source: the libfrenect git issues page

    The registration transformation produces a depth image as if the RGB and IR cameras were physically situated in the same place, and not offset by 2.5cm. Have a peek at the source code if you're curious about the details.

    Source: libfreenect source code

    0 讨论(0)
提交回复
热议问题