我可以得到一些关于如何使用 opencv 在实时视频中变形面部的想法吗?我尝试过人脸替换,但它是使用openFrameworks实现的。
我想使用opencv实现相同的功能。除了直接将人脸替换代码从 openFrameworks 移植到 Opencv 之外,opencv 中还有其他可用的方法吗?
我也浏览过这个链接,但很少有人提到面部变形在 opencv 中已被弃用?
我可以得到一些关于如何使用 opencv 在实时视频中变形面部的想法吗?我尝试过人脸替换,但它是使用openFrameworks实现的。
我想使用opencv实现相同的功能。除了直接将人脸替换代码从 openFrameworks 移植到 Opencv 之外,opencv 中还有其他可用的方法吗?
我也浏览过这个链接,但很少有人提到面部变形在 opencv 中已被弃用?
我最近写了一篇关于使用 OpenCV 进行人脸变形的文章。我已经分享了 C++/Python 中的代码。你可以在这里找到详细信息
http://www.learnopencv.com/face-morph-using-opencv-cpp-python/
但基本思想如下。
希望这可以帮助。
我不知道任何专门执行此操作的库,但是您可以自己拼凑一些东西。您需要一组在所有面上都引用的通用基准点。然后你会想用这些点对它进行Delaunay 三角剖分。
现在,您可以直接从一个面框转换到另一个面框,也可以将其写入中间标准化面,对其进行更改,然后将其写入任何地方。
以下是使用网格变形算法实现面部变形的步骤(您可以使用opencv
或 python scipy
/来实现它scikit-image
):
dlib
例如检测标志)。scipy.spatial
's Delaunay
)。scikit-image
's warp()
,例如)。下一个动画显示了在 python 中使用/ /实现网格变形算法的动画输出(从蒙娜丽莎图像到达芬奇图像的变形图像序列)。这也可以在这里找到。scipy
numpy
scikit-image
另一种流行的算法是Beier-neely morphing 算法(https://en.wikipedia.org/wiki/Beier%E2%80%93Neely_morphing_algorithm)
使用 OpenCV 在 Python 中检查面部变形工具