Как преобразовать изображения Kinect rgb и глубины в координаты реального мира xyz?

Недавно я использую kinect, чтобы найти расстояние до некоторых маркеров, поэтому я застрял в преобразовании изображений kinect rgb и глубины, которые находятся в пикселях, в координаты реального мира xyz, которые нужны в метрах.


person Needragon    schedule 08.04.2015    source источник


Ответы (2)


Вы можете использовать функцию depthToPointCloud в наборе инструментов Computer Vision System Toolbox для MATLAB.

person Dima    schedule 09.04.2015

Обратите внимание, что в Kinect SDK 1.8 (Kinect 1) невозможно преобразовать пространство изображения RGB в мировое пространство: только из пространства изображения глубины в мировое пространство. Другие возможные преобразования:

  • Глубина -> RGB
  • Мир -> Глубина
  • Мир -> RGB

Итак, для преобразования вы используете средство отображения координат, включенное в SDK (я предполагаю, что вы используете Microsoft SDK, а не OpenNI, AS3NUI или EuphoriaNI). Вот пример преобразования из мирового пространства в пространство RGB, взятый из здесь:

_sensor.CoordinateMapper.MapCameraPointToColorSpace(worldCoordinate);

Этот образец написан на C# для Kinect SDK 2.0. Чтобы увидеть еще один пример для SDK 1.8, а также краткое обсуждение использования средства сопоставления координат, вы можете посмотреть эту статью: Общие сведения о сопоставлении координат Kinect.

Чтобы преобразовать пространство изображения RGB в мировое пространство координат (только с Kinect 2 и SDK 2.0), вы можете использовать этот метод:

_sensor.CoordinateMapper.MapColorFrameToCameraSpace(depthFrame, resultArray);

Вы должны передать всю рамку глубины (не цветную рамку!!) и массив, в котором он вернет мировые координаты каждого пикселя цветовой рамки. Этот массив, разумеется, должен быть достаточно большим, чтобы вместить все точки (1920 * 1080 = 2 073 600 записей при максимальном разрешении), тогда координаты точки вы найдете по простой формуле:

worldCoordinate = resultArray[imageCoordinate.Y * rgbImageWidth + imageCoordinate.X];
person José Ernesto Lara Rodríguez    schedule 09.04.2015