Я борюсь с интерпретацией данных о глубине kinect.
Чтобы получить реальное расстояние от Kinect, я использовал следующую формулу:
if(i<2047){
depthToMeterTable[i] = i * -0.0030711016 + 3.3309495161;
}
else{
depthToMeterTable[i] = 0;
}
Эта формула дает что-то довольно хорошее в качестве оценщика расстояния.
Однако я получаю странный вывод из 90-градусной визуализации угла стены.
На следующем изображении две разные информации. Во-первых, фиолетовые линии представляют стену, какой я ДОЛЖЕН ее видеть. Угол 90 °. Красные точки представляют стену, видимую из Kinect. Как видите, угол двух плоскостей теперь больше.
http://img843.imageshack.us/img843/4061/kinectbias.jpg
Есть ли у вас какие-либо идеи, где я мог бы исправить этот уклон, и как это сделать?
Спасибо за чтение,
Al_th
Я не знаком с этой формулой преобразования (также не уверен, как заполняется ваша глубинаToMeterTable — какая формула там используется).
Для этого в libfreenect есть встроенная функция: freenect_camera_to_world
До того, как эта функция была добавлена, я использовал Функции преобразования Мэтта Фишера(RawDepthToMeters и DepthToWorld).
НТН
Других решений пока нет …