Я хочу деформировать изображение документа на деформированной сетке следующим образом:
Полукорректный подход описан здесь: ссылка
Тем не менее, меня особенно интересует обратимое отображение, в идеале, односторонняя операция (без необходимости дополнять изображение, как это было бы при использовании cv2.remap).
Пример процедуры:
Шаг 1: Получить деформированную сетку (для данного изображения)
xx_deformed = xx + vx
yy_deformed = yy + vy
где vx и vy описывают деформацию (см. Ссылку выше).
Шаг 2: Изображение карты на сетке:
warped_img = one_way_operation(src, xx_deformed, yy_deformed)
Шаг 3:
отменить деформацию:
xx_inv = xx - vx
yy_inv = yy - vy
unwarped_img = one_way_operation(warped_img, xx_inv, yy_inv)
Ожидаемый результат:
assert(img == unwarped_img)
Есть ли элегантный способ достичь этой цели? Я благодарен за любую подсказку.