Прозрачная проекция 3D-2D имеет 7 степеней свободы (6 для относительного движения сцены по отношению к камере, 1 для фокусного расстояния).
Выберите четыре вершины в 2D-проекции и рассмотрите все возможные соответствия с многогранными вершинами (имеется многочленное число таких ассоциаций). Затем сформировать систему из 7 уравнений по 7 неизвестным параметрам (к сожалению, нелинейную, возможно, восьмое уравнение может быть полезно для выбора среди множества решений).
Зная параметры, вы можете проверить решение путем повторного проецирования полиэдра и сравнения с полигоном (с дальнейшим поиском соответствий с вершинами и ребрами).
Все это займет многочленное время (четвертое, если я прав), если признать, что решатель занимает ограниченное время (следовательно, ограниченная точность).
Если фокусное расстояние известно, то лучше подход возможен.Действительно, всего с 6 неизвестными вы можете найти проекционные параметры от проекции всего трех точек. Известно, что эта проблема имеет решение (на самом деле до 4 из них), как подробно описано в «Новые алгоритмы для перспективы трехточечной задачи», GAO Xiaoshan & CHEN Hangfei, Vol.16 No.3 J Вычислительная техника & Technol. "
Это должно привести к точной процедуре O (N³).
В более общем смысле, вы образуют предполагаемые соответствия между N пар точек, решить соответствующую задачу перспективы N-точка, и проверить гипотезу перепроецировании многогранник и сравнение с известной проекции для проверки гипотезы.
3D-многоугольник просто плоский многоугольник с 3D-координатами? –
Прошу прощения, я должен был быть более явным. По трехмерному многоугольнику я имею в виду непланарный многоугольник, а двумерный многоугольник - плоский многоугольник –
Не нужно извиняться! 3D означает 3 оси; 3 оси означают непланарные, если только они не уходят с их пути и говорят, что все точки, принадлежащие определенной оси, имеют одно и то же значение, что приводит нас к двумерному пространству, плоскому пространству для выполнения геометрии. – mohsenmadi