В настоящее время я работаю над приложением дополненной реальности. Нацеленное устройство представляет собой шлем с оптическим зрением. Мне нужно откалибровать его дисплей, чтобы добиться правильной регистрации виртуальных объектов. Я использовал эту реализацию SPAAM для Android, чтобы сделать это, и результат достаточно точен для моей цели.
Моя проблема в том, что приложение калибровки выдает на выходе матрицу 4x4 проекции, которую я мог бы напрямую использовать, например, с OpenGL. Но структура дополненной реальности, которую я использую, принимает только параметры оптической калибровки в формате Поле обзора некоторый параметр + Соотношение сторон некоторый параметр + 4x4 Вид < / s> матрица.
Вот что у меня есть:
Правильный результат калибровки в неправильном формате:
6.191399, 0.114267, -0.142429, -0.142144
-0.100027, 11.791289, 0.05604, 0.055928
0.217304,-0.486923, -0.990243, -0.988265
0.728104, 0.005347, -0.197072, 0.003122
Вы можете взглянуть на код, который генерирует этот результат здесь.
Я понимаю, что метод одноточечного активного выравнивания создает матрицу 3x4, а затем программа умножает эту матрицу на матрицу ортогональной проекции, чтобы получить результат выше. Вот параметры, используемые для создания ортогональной матрицы:
near : 0.1, far : 100.0, right : 960, left : 0, top : 540, bottom: 0
Плохой результат калибровки в правильном формате:
Param 1 : 12.465418
Param 2 : 1.535465
0.995903, -0.046072, 0.077501, 0.000000
0.050040, 0.994671, -0.047959, 0.000000
-0.075318, 0.051640, 0.992901, 0.000000
114.639359, -14.115030, -24.993097, 1.000000
У меня нет информации о том, как получаются эти результаты.
Я читаю эти параметры из двоичных файлов и не знаю, хранятся ли матрицы в виде строк или столбцов. Таким образом, возможно, придется переставить две матрицы.
Мой вопрос: Возможно ли, и если да, то как получить эти три параметра из первой имеющейся у меня матрицы projection?
fov = 2.0*atan(1.0/prjM[1][1])*180.0/PI; aspect = prjM[1][1]/prj[0][0]
- см. Как восстановить положение пространства обзора с учетом значения глубины пространства обзора и ndc xy - person Rabbid76   schedule 12.09.2017