Есть сообщения Google и сообщения stackoverflow, которые, кажется, отвечают на этот вопрос, но простой факт заключается в том, что я не могу их понять. Независимо от того, насколько я читаю, я не могу окунуться в кватернионы, а углы Эйлера и преобразования Родригеса - все это.
Любой, кто объяснит мне, как мне 12, как получить из векторов вращения и перевода, возвращаемых методом OpenCV solvePnP(), в значения xyz Position и xyz Rotation, которые я могу подключить к графическому приложению 3D?
Это приложение для дополненной реальности в С++. Я открываю и запускаю OpenCV, отслеживая маркерную панель и отправляю векторы вращения и перевода в графическую программу, но я понятия не имею, как использовать эту информацию для создания моего 3D-объекта.
Я действительно хочу понять математику, стоящую за этим, и по достоинству оценят любое объяснение теории здесь. Но я также соглашусь на указатель на какой-то код, который я могу скопировать/вставить и изучить теорию еще на один день. На самом деле я, кажется, быстрее изучаю такие вещи, видя конкретный код и работая обратно в теорию.
EDIT: Как там этот... который явно должен указывать на меня в правильном направлении, но это может быть и план для машины времени для всех я знать. Мне пришло в голову, что я могу попросить исправительную математику средней школы, но это не может быть в первый раз.
EDIT: Здесь приведен пример вектора вращения и вектора перевода, возвращаемого из solvePnP()..., преобразованного в XML для поездки в графическое приложение. Обратите внимание, что каждый из них, который я видел, содержит три строки и один столбец.
<Tvec type_id="opencv-matrix">
<rows>3</rows>
<cols>1</cols>
<dt>f</dt>
<data>
-2.50094433e+01 -6.59909010e+00 1.07882790e+02
</data>
</Tvec>
<Rvec type_id="opencv-matrix">
<rows>3</rows>
<cols>1</cols>
<dt>f</dt>
<data>
-1.92100227e+00 -2.11300254e-01 2.80715879e-02
</data>
</Rvec>