У меня есть изображение с 2D-проекцией (зеленый) трехмерного квада (синее), как фотография комнаты, в которой оригинальная четверка в трехмерном пространстве - пол. Я знаю 2D XY позицию точек ABCD (предоставляется пользователем).Настройка расположения плоскости камеры так, чтобы проекция плоскости соответствовала 2d прямоугольнику
http://i41.tinypic.com/rr59xt.png
Зная ширину, высоту и внутренние углы четырехугольника в 3D пространстве, я хочу, чтобы это оригинальный камера-объект взаиморасположение, который создал эту проекцию. Итак, насколько я понимаю, это точная проблема, решаемая инструментарием AR при отображении 3D-маркеров над 2D-изображениями и может быть решена с помощью копланарного алгоритма POSIT. Я использую код из AForge.NET Framework (http://www.aforgenet.com/articles/posit/), который дает мне матрицу поворота и вектор трансляции.
Мое первое замешательство: Я получаю матрицу вращения и вектор трансляции в мировой системе координат с (0,0,0) в качестве источника (т.е. моя камера находится в 0,0,0 позиции с 0,0 , 0 поворот)?
Моя вторая путаница: я помещаю четверной с таким же размером, как оригинал (синий один на первом изображении) на плоскости XY, как я могу преобразовать свою матрицу вращения и вектор перемещения, порожденную CoPOSIT algorigh для того, чтобы получить положение камеры и вращение, так что этот квадрат на экране соответствует оригинальной 2D-проекции (зеленый прямоугольник на первом изображении). Как и на последнем изображении, где синий полупрозрачный трехмерный квадрат сгибает пол.
http://i44.tinypic.com/zl5cmu.png http://i44.tinypic.com/2vru6n4.png