3

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

4

3 回答 3

4

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

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

于 2015-06-04T19:41:05.253 回答
1

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

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

于 2015-09-30T03:41:13.767 回答
0

是的 libfreenect2 适用于并且仅适用于 Kinect V2。但要知道的重要一点是 Kinect v2 仅适用于 USB 3.0(我猜是更多),如果您想在同一个网络上使用多个 kinect,您可能会遇到一些问题。 在这里你可以找到 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);

注册->应用重新映射彩色图像上的深度图。

于 2017-06-22T08:28:58.840 回答