Вопрос: Нахождение четвертой точки четырехугольника. (После преобразования перспективы)


Существует изображение квадрата, и к этому изображению применяется перспективное преобразование.

Таким образом, перспективный образ квадрата будет не квадратным, а четырехугольным. Вопрос:

Если я знаю три угловые точки перспективного изображения (четырехугольник) то какова будет четвертая угловая точка четырехугольника?

Проблема также возникает из-за того, что угловые точки указаны в пространстве изображений, не в мировой системе координат. Таким образом, у них есть только две координаты, например: N1 = (x1, y1), N2 = (x2, y2), N3 = (x3, y3)

И мне нужно найти N4 = (x4, y4), используя информацию о том, что реальное изображение в мировых координатах было квадратом перед трансформацией перспективы.

Можно ли найти этот 4-й пункт? Я думаю, что не будет только одного решения этой проблемы, но я хочу знать, сколько решений у нас есть, и я хочу получить эти решения.

Я читал почти ту же проблему здесь, но автор не сказал, что это была квадрат перед трансформацией.


4


источник


Ответы:


В общем, это невозможно. Вы хотите определить гомографию (перспективное преобразование) между плоскостью, где лежит исходный квадрат, и плоскостью изображения, используя знание трех соответствий между точками, но вам нужно четыре  соответствия между точками, чтобы однозначно определить плоскую гомографию.

Пример двусмысленности. Предположим, что исходный квадрат имеет свои вершины в точках с однородными координатами [0, 0, 1], [1, 0, 1], [1, 1, 1] и [0, 1, 1 ]. Теперь рассмотрим две гомологии, заданные следующими матрицами:

H1 = [1, -2, 0;
      0, -1, 0;
      0, -2, 1]

H2 = [-1, 2, 0;
       0, 1, 0;
      -2, 2, 1]

Оба преобразования оставляют первые три вершины инвариантными (помните, что две точки в проективном пространстве равны тогда и только тогда, когда их векторы отличаются ненулевым масштабным множителем), но они преобразуют четвертую вершину в разные точки.


4



Предположим, что мы используем Пример проективной матрицы преобразования Википедии , и предположим, что у вас есть четыре очка p = {px,py,pz}, p+u, p+v, а также p+u+v, Предположим, что последний - тот, который вы хотите найти, и u а также v являются краевыми векторами квадрата. После преобразования точки отображаются p -> {px/pz, py/pz, 1}, p+u -> {(px+ux)/(pz+uz), (py+uy)/(pz+uz), 1}, и аналогично для p+v а также p+u+v, Разумеется, все это предполагает, что ни u или v находится в нулевом пространстве преобразования (они не «выровнены по направлению к камере»). Таким образом, у вас есть 4 новые координатные пары, которые являются рациональными функциями исходных координат 3D реального пространства. Ваша проблема в основном, как вы вычисляете

(px+ux+vx)/(pz+uz+vz) and (py+uy+vy)/(pz+uz+vz)

из

px/pz, py/pz, (px+ux)/(pz+uz), (py+uy)/(pz+uz),
(px+vx)/(pz+vz), and (py+vy)/(pz+vz)

Я не думаю, что есть способ сделать это. Также, эта страница  кажется, указывает на то, что любой четырехугольник может быть отображен на любой другой четырехугольник с помощью перспективного преобразования, поэтому вполне вероятно, что ваша проблема некорректна.


1



Если все, что вам известно, это координаты изображения после проекции, то я не думаю, что вы можете найти координаты четвертой точки. Если вы знаете сторону квадрата (например, 5 м в трехмерном пространстве) и координаты изображения w.r.t. центр проекции (а не только значения x, y пикселя, а также расстояние плоскости изображения от центра проекции), то вы можете использовать любой из методов, описанных в Haralick et. и др.  найти координаты четвертой точки.


0



Но у этой проблемы есть некоторые решения, я слышал, что есть несколько способов найти четыре возможных четвертых угла четырехугольника. Так может быть, не так много решений этой задачи? И какой дополнительной информации будет достаточно, чтобы найти не так много решений этой проблемы? Также теперь я читаю о калибровке камеры, но я думаю, что мне нужно будет откалибровать время работы камеры, чтобы решить проблему. Поэтому, даже если я запомню параметры калибровки и сделаю программу, которая автоматически откалибрует камеру, что произойдет, если состояние камеры изменится, и параметры калибровки также изменятся? В этой ситуации параметры старой камеры будут неправильными.


0



Нахождение четвертой точки четырехугольника. (После преобразования перспективы) | Programmerz.ru