У меня есть следующая проблема, которая в основном алгоритмическая.Как найти 3D-координаты проецируемого прямоугольника?
- Пусть ABCD представляет собой прямоугольник с известными размерами d1, d2, лежащим где-то в пространстве.
- Прямоугольник ABCD проецируется на плоскость P (образуя в общем случае трапецию KLMN). Я знаю проекционную матрицу H.
- Я также могу найти 2D-координаты точек края трапеции K, L, M, N.
Вопрос заключается в следующем:
- Учитывая Матрица проекции Н Координаты ребер на трапеции и осознанием того, что наш объект представляет собой прямоугольник с заданной геометрией (размеры d1, d2) , мы могли бы вычислить 3D-координаты точек A, B, C, D?
Я захватываю изображения простых прямоугольников с одной камерой, и я хочу восстановить прямоугольники в пространстве. Я мог бы захватить более одного изображения и использовать триангуляцию, но это нежелательно.
Одной проекционной матрицы недостаточно, поскольку луч проецируется в ту же точку. Тот факт, что объект имеет известные размеры, заставляет меня поверить, что проблема разрешима и существуют конечные решения.
Если я выясню, как эта реконструкция может быть выполнена, я знаю, как ее запрограммировать. Поэтому я прошу алгоритмический/математический ответ.
Любые идеи приветствуются Благодаря
Обратное к матрице проецирования недостаточно, так как одна точка на плоскости изображения будет «непроектировать» на луч. Таким образом, путем обратного проецирования четырех точек K, L, M, N мы получаем только четыре строки, а не точное положение от прямоугольника в пространстве. – 2009-03-10 16:30:43
@netclectic - Исходная карта проекции указывает на лучи? Нет - и ни один из них не будет обратным. Когда вы строите матрицу проекции, вы решаете «глубину», для которой нужно проектировать. – mbeckish