我已经提出了这个问题将近两年,我认为是时候回答它了:使用OpenCV实现此过滤器的源代码可以在我的GitHub repo中找到。 该实现基于Adobe Flash DisplacementMapFilter文档。 还有另一个教程我推荐大家阅读:Psyark's DisplacementMapFilter Tutorial。虽然旧但准确。 结果:
自然地,我不知道他们在这个页面上使用了什么。但是你可以使用视差映射应用于平面上来获得类似的效果。在这种情况下没有遮挡,这使得它更快。 这个线程中有一个着色器实现,应该很容易转换为内核。 这里是另一个链接,使用这种技术进行照片处理。