我必须在Linux中使用Kinect v2进行项目,并且正在搜索兼容的库。尚不清楚Open Kinect项目是否已经破解了Kinect v2。
答案 0 :(得分:3)
是的,这个库是针对kinect v2的。此库(libfreenect2)不适用于您将使用libfreenect的旧kinect(360)
答案 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, ®istered, true, &depth_remap);
registration->应用重新映射彩色图像上的深度图。