我必须在 Linux 中使用 Kinect v2 进行项目,并且正在寻找兼容的库。目前尚不清楚 Open Kinect 项目是否已经破解了 Kinect v2。
问问题
4507 次
3 回答
4
是的,这个库适用于 kinect v2。此库 (libfreenect2) 不适用于您将使用 libfreenect 的旧 kinect (360)
于 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, ®istered, true, &depth_remap);
注册->应用重新映射彩色图像上的深度图。
于 2017-06-22T08:28:58.840 回答