Я работаю над проектом оценки головы, используя 2 камеры. Для одной камеры система работает и возвращает матрицу вращения и вектор трансляции головки относительно каждой системы координат камеры. Я отобразил объект в сцене OpenGL, который повернут и переведен для представления движений головы. Для отображения вычисленной матрицы поворота и вектора перевода я просто использую следующие команды OpenGL.Оценка состояния головы с помощью 2-х камер
glMatrixMode(GL_MODELVIEW);
glLoadMatrixd(pose_matrix);
где матрица позы - это модель OpenGL ModelView, построенная из матрицы поворота и вектора переноса головы.
Теперь я пытаюсь сделать это для 2 откалиброванных камер. Когда первая камера потеряла дорожку лица, а вторая оценивает позу головы, я показываю поворот и перевод по отношению ко второму и наоборот. Я хочу отобразить один объект OpenGl и переместить его для обоих случаев. Для этого мне нужно перенести матрицы позы в общую систему координат.
Я знаю относительную геометрию двух камер относительно друг друга. Я предполагаю, что одна из камер является мировой координатной рамкой, и я переношу матрицу представления головы второй камеры в кадр первой камеры, умножая матрицу позы и матрицу калибровки второй камеры относительно первой камеры. Когда я загружаю эту умноженную матрицу в матрицу OpenGL ModelView, я получаю неправильные результаты. Когда первая камера захватывает лицо, объект движется вправо, но для второго объекта камеры передается и поворачивается и не находится в том же месте, что и в случае первой камеры.
В чем может быть проблема? Может быть, часть отображения OpenGL неверна или?