Установка взаимного расположения плоскости камеры так, чтобы проекция плоскости соответствовала 2-му прямоугольнику - PullRequest
0 голосов
/ 27 марта 2012

У меня есть изображение с 2D-проекцией (зеленая) 3D-квадрата (синее), как фотография комнаты, где оригинальный квад в 3D-пространстве является полом этой комнаты. Я знаю 2D XY положение точек ABCD (предоставлено пользователем).

http://i41.tinypic.com/rr59xt.png

Зная ширину, высоту и внутренние углы четырехугольника в трехмерном пространстве, я хочу получить исходное расположение камеры и объекта, которое создало эту проекцию. Так что, насколько я понимаю, это точная проблема, решаемая AR-инструментами при отображении 3D-маркеров на 2D-изображениях, и может быть решена с помощью компланарного алгоритма POSIT. Я использую код из AForge.NET Framework (http://www.aforgenet.com/articles/posit/), который в результате дает мне матрицу вращения и вектор перевода.

Мое первое замешательство: Получаю ли я матрицу вращения и вектор перевода в мировой системе координат с (0,0,0) в качестве начала координат (т.е. моя камера находится в положении 0,0,0 с 0,0,0 оборота)

Мое второе заблуждение: Я помещаю четырехугольник того же размера, что и исходный (синий на первом изображении) на плоскость XY, как я могу преобразовать свою матрицу вращения и вектор перевода, сгенерированный CoPOSIT, также в чтобы получить положение и поворот камеры, чтобы этот квадрат соответствовал исходной 2D-проекции (зеленый прямоугольник на первом изображении). Как и на последнем изображении, где синий полупрозрачный трехмерный квадратор совмещает пол.

http://i44.tinypic.com/zl5cmu.png http://i44.tinypic.com/2vru6n4.png

1 Ответ

1 голос
/ 27 марта 2012
  1. Из исследовательской работы , стр. 3 (копирование / вставка работает неправильно, IDK, почему):

    Наша цель - вычислитьматрица вращения и вектор перемещения объекта. Матрица вращения R для объекта - это матрица, строки которой представляют собой координаты единичных векторов ijk системы координат камеры, выраженной в системе координат объекта Mu Mv
    Mw ДействительноЦель матрицы вращения состоит в том, чтобы преобразовать объектные координаты векторов , таких как MMi, в координаты, определенные в системе камер, точечное произведение MMi между первой строкой матрицы и вектором MMi правильно обеспечивает проекцию этого вектора наединичный вектор i системы координат камеры, то есть координаты Xi X в MMi, при условии, что координаты MMi и вектора строки i выражены в одной и той же системе координат здесь система координат объекта

    Кажется, что камера находится в центре (0, 0, 0) и смотрит вдольось y.

  2. Поправьте меня, если я ошибаюсь, но вы хотите применить обратные операции к камере (сдвиньте камеру на -translation vector и поверните ееinverse of rotation vector).

...