Перспективное преобразование данной точки (x, y) в четырехугольной плоскости в точку прямоугольной плоскости (x', y')?

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

Я использую EmguCV для обработки изображений в моем проекте .NET.

Что я пробовал:

1) Рассчитать матрицу гомографии между четырехугольником и прямоугольной плоскостью (указав точки по часовой стрелке от левого верхнего угла для обеих плоскостей)

2) Умножьте приведенную выше матрицу гомографии на матрицу 3 x 1 [x, y, 1], чтобы получить окончательные координаты.

Однако результирующая координата (x', y') не соответствует заданной точке (x,y).

введите здесь описание изображения


person bharat.chandak100    schedule 03.09.2014    source источник
comment
Вы дегомогенизировали координаты? После умножения у вас есть (x', y', z'), но вам нужно (x', y', 1), поэтому вычислите p' = (x'/z', y'/z'). Если вы сделали это, но все равно получили неправильные результаты, попробуйте нарисовать прямоугольник целиком и покажите результат, пожалуйста.   -  person Micka    schedule 03.09.2014
comment
stackoverflow.com/questions/18181012/   -  person Engine    schedule 03.09.2014
comment
@Micka, огромное спасибо!! Эта дегомогенизация была правильным решением. Она решила мою проблему. Странно, как я забываю основные вещи, необходимые. т. е. p' = (x'/z', y'/z') Еще раз спасибо!   -  person bharat.chandak100    schedule 03.09.2014
comment
если хотите, вы можете опубликовать ответ самостоятельно (может быть, код) и принять его, чтобы помочь другим, у которых такая же проблема (и увидеть ответ на этот вопрос).   -  person Micka    schedule 03.09.2014


Ответы (1)


Как предложил Мика, после получения результирующей матрицы (3x1) все, что нужно для решения этой проблемы, было следующим: p' = (x'/z', y'/z')

Шаги, как показано ниже:

  1. Вычислить матрицу гомографии между четырехугольником и прямоугольной плоскостью
  2. Умножьте этот мат гомографии. с точкой-кандидатом [x,y,1]T и получить [x',y',z']T
  3. Теперь выполните дегомогенизацию выше [x',y',z']T, т.е. [(x'/z'), (y'/z'), 1]T

    таким образом, искомая конечная координата прямоугольной плоскости.

person bharat.chandak100    schedule 03.09.2014