libfreenect2是否支持Kinect v2

时间:2015-06-04 16:55:41

标签: c++ linux kinect openkinect

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

是的,libfreenect2适用于Kinect V2和onl。但重要的是要知道Kinect v2仅适用于USB 3.0(或者我猜更多),如果你想在同一个网络上使用几个kinect,你可能会遇到一些问题。 here您可以找到API。此外,您可以查看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->应用重新映射彩色图像上的深度图。