Как сделать неперспективную деформацию изображения в OpenCV? - PullRequest
2 голосов
/ 14 февраля 2011


У меня есть изображение, где пользователь выбирает произвольный четырехугольный многоугольник.
Я хочу растянуть этот многоугольник на все изображение.
Я пытался сделать это с помощью гомографии и cvWarpPerspective,
но результатом было преобразование перспективы, а это не то, что мне нужно.
Есть идеи, как это сделать с OpenCV / EMGU?

Спасибо,
SW

Ответы [ 2 ]

0 голосов
/ 15 февраля 2011

Я думаю, что вы хотите, чтобы изменить перспективное преобразование.

Вот что вы должны рассмотреть. Предположим, что у вас был многоугольник в местах (x1, y1) .... (x4, y4) первоначально на вашем экране (0,0) .... (w, h). Применяя перспективное преобразование, используя cvWarpPerspective / getPerspectiveTransform, вы сможете получить исходные координаты известных координат. Таким образом, вы должны в основном умножить известные координаты на обратную матрицу преобразования перспективы (если это не является необратимым, в этом случае вы должны добавить дельта-член к однородному -координатному термину)

0 голосов
/ 15 февраля 2011

То, что вы пытаетесь, должно работать. Рассчитайте гомографию, сделав 4 угла многоугольника соответствующими (0,0) (0, высота) (ширина, 0) и (ширина, высота).

Посмотрите на GetPerspectiveTransform

...