Перевести интенсивность глубины кинекта в расстояние в метрах - PullRequest
0 голосов
/ 03 июня 2019

Я работаю над изображениями глубины kinect v1Как найти расстояние в метрах для соответствующего значения глубины глубины каждого пикселя?Значение интенсивности варьируется от 0-255 , так как это изображение в градациях серого, и у меня нет необработанных данных о глубине.

Я пробовал различные способы получить расстояние, например,используя следующие формулы:

- 1.0 / (raw_depth * -0.0030711016 + 3.3309495161)  
- 0.1236 * tan(rawDisparity / 2842.5 + 1.1863)

Я также пытался получить необработанные данные с помощью:

raw = (255 - depthIntensity)/256*2047

Как мне решить эту проблему?

1 Ответ

1 голос
/ 03 июня 2019

Kinect на самом деле посылает что-то похожее на изображение несоответствия по USB.И OpenNI, и libfreenect способны преобразовывать это изображение в глубину, используя параметры, сообщаемые устройством (базовая линия, фокусное расстояние и расстояние до базовой плоскости, IIRC).например, CV_CAP_PROP_OPENNI_BASELINE

В приведенной ниже математической форме мы находим глубину на основе диспаратности

Глубина = базовая линия * фокусное расстояние / диспаратность.Глубина должна соответствовать оси Z текущего кадра изображения.

enter image description here

...