У меня есть изображение, на котором пользователь выбирает произвольный многоугольник с четырьмя углами.
Я хочу растянуть этот многоугольник на все изображение.
Я пытался сделать это с помощью гомографии и cvWarpPerspective,
но результатом стало преобразование перспективы, а это не то, что мне нужно.
Есть идеи, как это сделать с помощью OpenCV/EMGU?
Спасибо,
SW
Как сделать деформацию изображения без перспективы в OpenCV?
Ответы (2)
То, что вы пытаетесь, должно сработать. Рассчитайте гомографию, сделав 4 угла многоугольника соответствующими (0,0) (0,высота) (ширина,0) и (ширина,высота).
Взгляните на GetPerspectiveTransform.
Я думаю, что вы хотите, это изменение перспективы преобразования.
Вот что вы должны рассмотреть. Предположим, что у вас изначально был многоугольник в точках (x1,y1)....(x4,y4) на вашем экране (0,0) ....(w,h). Применяя преобразование перспективы с помощью cvWarpPerspective/getPerspectiveTransform, вы сможете получить исходные координаты до известных координат. Таким образом, вы должны в основном умножить известные координаты на обратную матрицу преобразования перспективы (если это не является необратимым, и в этом случае вы должны добавить дельта-термин к однородному -координатному члену)