libfreenect2 是否支持 Kinect v2

Does libfreenect2 support Kinect v2

我必须在 Linux 中使用 Kinect v2 进行项目,并且正在搜索兼容的库。目前还不清楚Open Kinect项目是否已经破解了Kinect v2

是的,此库适用于 kinect v2。此库 (libfreenect2) 不适用于您将使用 libfreenect 的旧版 kinect (360)

在此处阅读项目页面:https://github.com/OpenKinect/libfreenect2

是的,它支持Kinect V2,你可以从这里安装它 https://github.com/OpenKinect/libfreenect2

但是,请记住它不会为您提供关节和骨骼信息。如果您需要从 Linux 中的 Kinect V2 接收这些数据,有一些 OpenNI 和 NiTE 的驱动程序可以让您从 Kinect 接收这些数据。请查看此线程以获取更多信息: https://github.com/OpenKinect/libfreenect2/issues/243

是的,libfreenect2 适用于且仅适用于 Kinect V2。但要知道的重要一点是,Kinect v2 只能与 USB 3.0(我猜是更多)一起工作,如果你想在同一个网络上使用多个 kinect,你可能会遇到一些问题。 here you can find the API. Moreover you can take a look at this 寻求帮助。代码中最重要的部分是以下几行:

    #include "libfreenect2/libfreenect2.hpp"
    #include "libfreenect2/frame_listener_impl.h"
    #include "libfreenect2/registration.h"

    libfreenect2::Freenect2 freenect2;
    libfreenect2::Freenect2Device *dev = nullptr;
    libfreenect2::SyncMultiFrameListener *listener;
    libfreenect2::Registration* registration;

        listener = new libfreenect2::SyncMultiFrameListener(libfreenect2::Frame::Color | libfreenect2::Frame::Depth);
        dev->setColorFrameListener(listener);
        dev->setIrAndDepthFrameListener(listener);

        dev->start();
        registration = new libfreenect2::Registration(dev->getIrCameraParams(), dev->getColorCameraParams());

然后循环:

libfreenect2::FrameMap frames;
        libfreenect2::Frame undistorted(512, 424, 4), registered(512, 424, 4), depth_remap(1920, 1082, 4);

        listener->waitForNewFrame(frames);
        //capture
        libfreenect2::Frame *bgrx = frames[libfreenect2::Frame::Color];
        libfreenect2::Frame *depth = frames[libfreenect2::Frame::Depth];

        registration->apply(bgrx, depth, &undistorted, &registered, true, &depth_remap);

registration->apply remap the depth map on the color image.