python — Имея точные расстояния перемещения и изменения ориентации, как заполнить матрицу преобразования перспективы OpenCV (disparity-to-deep)?

Скажем, у нас есть робот \ машина \ NPC \ iPhone с видом с камеры. Мы контролируем все его движения в трехмерном пространстве. Вот алгоритм, который мы выполняем: захват кадра; переместить \ повернуть камеру (сохранить положение и разницу поворота: X, Y, Z; aX, aY aZ); захватить новый кадр; делать StereoBM. Теперь мы хотим выполнить opencv reprojectImageTo3D на StereoBM результат. Это требует Q — 4 \times 4 матрица перспективного преобразования.
Интересно, как с помощью перевода и поворота diff (6 значений с плавающей запятой) мы можем получить это 4 \times 4 матрица перспективного преобразования без какой-либо обработки изображения?

1

Решение

Как показано в документации для reprojectImageTo3DВы можете получить 4x4 перспективное преобразование Q от stereoRectify.

Однако, если вы хотите создать свою собственную матрицу, посмотрите Вот чтобы увидеть, как 3D-преобразования могут быть записаны в 4x4 матрица (хотя обратите внимание, что они используют обычную математическую форму, которая транспонирована от того, что типично для компьютерного зрения), и Вот для примера OpenCV с правильным транспонированием в C ++.

По сути, вам нужно написать три отдельные матрицы вращения и трансляционную матрицу и объединить их все (с помощью умножения), чтобы получить окончательный результат. 4x4 матрица преобразования.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector