Я должен работать с Kinect v2 в Linux для проекта и ищу совместимые библиотеки. Пока неясно, взломал ли проект Open Kinect Kinect v2.
Да, эта библиотека для Kinect v2. Эта библиотека (libfreenect2) не работает со старым kinect (360), для которого вы бы использовали libfreenect
Прочитайте страницу проекта здесь: https://github.com/OpenKinect/libfreenect2
Да, он поддерживает Kinect V2, и вы можете установить его отсюда
https://github.com/OpenKinect/libfreenect2
Однако помните, что это не дает вам информацию о суставах и скелетах. Если вам нужно получить эти данные от Kinect V2 в Linux, есть некоторые драйверы для OpenNI и NiTE, которые позволяют получать их от Kinect. Пожалуйста, посмотрите на эту тему для получения дополнительной информации:
https://github.com/OpenKinect/libfreenect2/issues/243
Да, libfreenect2 работает только для Kinect V2. Но важно знать, что Kinect v2 работает ТОЛЬКО с USB 3.0 (или больше, я думаю), и у вас могут возникнуть проблемы, если вы хотите использовать несколько kinect в одной сети.
Вот Вы можете найти API. Кроме того, вы можете взглянуть на этот за некоторую помощь. Наиболее важной частью кода являются следующие строки:
#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);
регистрация-> применить переназначение карты глубины на цветном изображении.