Фильтр карты смещения в OpenCV - PullRequest
12 голосов
/ 13 февраля 2012

Мне любопытно узнать, как можно реализовать эффект , продемонстрированный здесь , используя OpenCV. Я думаю, что это какой-то фильтр карт смещения, но я не уверен на 100%.

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

Возможно ли это? Как мне это сделать?

Примечание : есть еще одна страница , показывающая тот же эффект здесь .

Ответы [ 2 ]

16 голосов
/ 19 декабря 2013

Прошло почти 2 года с тех пор, как я задал этот вопрос, и я думаю, что пришло время ответить на него.

Исходный код , который реализует этот фильтр с использованиемOpenCV можно найти в моем репозитории GitHub .

Реализация основана на документации Adobe Flash 'DisplacementMapFilter .Вы можете сравнить результаты моей реализации с учебником по Flash, доступным здесь: Фильтр и анимация карты смещения , в котором используются Flash 8 Pro и ActionScript 2 .Есть еще один учебник, который я рекомендую прочитать: Учебник Psyark's DisplacementMapFilter .Он старый, но точный.

Я снял видео с вывода моего приложения и поделился им на Youtube, чтобы показать эффект фильтра .

image image image image

1 голос
/ 13 февраля 2012

Естественно, я не знаю, что они используют на этой странице. Но вы можете получить аналогичный эффект, используя Parallax Mapping , нанесенный на плоскую поверхность. В этом случае нет окклюзии, что делает его быстрее.

В этом потоке есть реализация шейдера , которую достаточно легко перевести на ядро.

Здесь - это еще одна ссылка, использующая эту технику для фотографий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...