opencv C++: отрицательные координаты с перспективой преобразования

Я хочу Перспектива Преобразовать зону изображения вокруг маркера. Эта зона, конечно, находится внутри большего изображения. Для этого я:

1) найти гомографию матрицы преобразования Homo на основе только маркеров углов,

затем:

2) Я применяю перспективу Transform с Homo к углам большей зоны вокруг маркера, чтобы найти углы области обрезки в трансформированном в перспективе увеличенном изображении.

Затем я:

3) деформируйте все изображение с помощью Homo и:

4) обрезать область (определенную выше на шаге 2) внутри преобразованного изображения.

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

Проблема возникает на шаге 2): координаты преобразованных углов отрицательны, как я должен вычислить правильное смещение для них, чтобы найти правильную область в преобразованном изображении?

Я уже исследовал это. Например здесь:

cv:: warpPerspective показывает только часть искаженного изображения

но я не понимаю, какое значение я должен дать w и h в ссылке выше, чтобы соответствовать моему делу?...

Объяснение в приведенной выше ссылке меня немного смущает, поэтому, если кто-то сможет прояснить этот вопрос более подробно и / или с примером, это наверняка поможет!

Любая помощь будет принята с благодарностью!

Заранее спасибо Джон

0 ответов

Другие вопросы по тегам