Фильтр карты перемещения в OpenCV
Мне любопытно узнать, как можно реализовать эффект продемонстрированный здесь, используя OpenCV. Я думаю, что это какой-то фильтр перемещения, но я не уверен на 100%.
После того, как эта страница полностью загружена, переместите мышь вокруг, чтобы увидеть перемещение фонового изображения (это эффект, который я ищу).
Возможно ли это? Как мне это сделать?
Примечание: там также есть страница отображающая тот же эффект.
Ответы
Ответ 1
Это было почти 2 года, так как я задал этот вопрос, и думаю, что настало время ответить на него.
исходный код, который реализует этот фильтр с помощью OpenCV, можно найти в моем репозитории GitHub.
Реализация основана на документации Adobe Flash 'DisplacementMapFilter. Вы можете сравнить результаты моей реализации с учебником Flash, доступным здесь: Фильтр смещения карты и анимация, в котором используются Flash 8 Pro и ActionScript 2.
В другом учебном пособии я рекомендую людям читать: Psyarks DisplacementMapFilter Tutorial. Это старый, но точный.
![dd4am.jpg]()
![c0N5G.jpg]()
![vjyUc.jpg]()
![36ekf.jpg]()
Ответ 2
Естественно, я не знаю, что они используют на этой странице. Но вы можете получить аналогичный эффект, используя Parallax Mapping, примененный к плоской поверхности. В этом случае нет окклюзии, что делает ее быстрее.
Существует реализация шейдера в этот поток, который должен быть достаточно легким для перевода в ядро.
Здесь - это еще одна ссылка, которая использует этот метод для фотографий.