2009-12-29 2 views
4

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

Таким образом, перспективное изображение квадрата будет не квадратным, а квадратным. Вопрос:

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

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

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

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

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

+0

Er, возможно * четырехугольник * – pavium

+1

Четырехугольник также правильный. –

ответ

0

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

1

Предположим, мы используем Wikipedia's example projective transform matrix, и предположим, у вас есть четыре точки 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) 

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

4

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

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

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

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

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

0

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

+0

Пожалуйста, используйте функцию комментариев, а не отправляйте ответы на свой вопрос. –

+0

Да, вы правы, но я только что зарегистрировал свою учетную запись, и я новичок на этом сайте, и я хотел опубликовать этот комментарий всем. – maximus

Смежные вопросы