3

Я откалибровал свою моно камеру с помощью opencv. Теперь я знаю внутреннюю матрицу камеры и коэффициенты искажения [K1, K2, P1, P2, K3, K4, K5, K6] моей камеры. Предположим, что камера находится в [x, y, z] с поворотами [Roll, Pitch, Yaw]. как я могу получить каждый пиксель в мировой координате, когда камера смотрит на пол [z = 0].изображение координата координаты мира opencv

enter image description here

ответ

2

Вы говорите, что вы откалиброван камеру, которая дает вам:

  • характеристическую Parameters
  • Внешние параметры (вращение, перевод)
  • Искажение коэффициенты

Во-первых, чтобы компенсировать искажения, вы можете использовать функцию undistort и получить неискаженное изображение. Теперь у вас остались внутренние/внешние параметры и модель камеры обскуры. Уравнение ниже взяты из OpenCV documentation объясняет, как преобразовать мир 3D координат в 2D-изображения координат с использованием этих параметров:

enter image description here

В принципе, вы умножать 3D координаты на матрицу проекции, которая, в свою очередь, представляет собой комбинацию внутренние параметры (первая матрица в уравнении) и внешние параметры (вторая матрица в уравнении). Матрица внешних параметров содержит как компоненты поворота, так и трансляции [R|T].

+0

Спасибо за ваш ответ. Я думаю, что это общий случай. Кажется, что переход [X, Y, Z] положения камеры должен идти в t1 t2 t3. но я не понимаю, как я могу получить r11 ~ r33 из [Roll, Pitch, Yaw]. А как насчет того, что камера смотрит на пол [Z = 0]? – mefmef

+1

Если вы ищете слово, Z = 0 в уравнении, и преобразование становится обратимым, как описано в слайде 27 презентации, которую я упомянул в своем ответе (http: //www.gris.tu-darmstadt. де/обучение/курсы/SS11/CV1/l9-SingleView-v1.pdf). –

+1

Что касается значений r11 ~ r33, они образуют так называемую матрицу вращения. Его можно записать в виде R = ABC, где A, B и C представляют вращения вокруг другой оси (оси выбираются в соответствии с соглашением). Количество оборотов определяется углами рулона, высоты тона и угла поворота, но, поскольку существуют различные условные обозначения, значения A, B и C могут изменяться. В качестве ссылки для реализации преобразования вы можете использовать http://mathworld.wolfram.com/EulerAngles.html. –

2

Я предлагаю вам начать с изучения точечную модель камеры, которая моделирует процесс, посредством которого точка в 3D мире отображается на плоскости изображения, используя внутренние параметры камеры. Как вы увидите, этот процесс не является индивидуальным, и поэтому он обычно не может быть инвертирован (изображение в 3D), если у вас нет информации о глубине (что у вас есть, поскольку вы сказали, что точки расположены в точке z = 0). Этот конкретный случай упоминается в слайде 27 из this presentation. В предыдущих лекциях подробно описывается процесс формирования изображения и может использоваться в качестве первой ссылки для фактического определения преобразования координат изображения в мир. Szeliski's book и this PDF также являются отличными ресурсами.