我可以得到一些关于如何使用 opencv 在实时视频中变形脸部的想法吗?我尝试过 Face substitution 但它是使用 openFrameworks 实现的。

我想使用 opencv 实现相同的功能。除了直接将人脸替换代码从 openFrameworks 移植到 Opencv 之外,opencv 中还有其他可用的方法吗?

我也经历过这个 link ,但很少有人提到 face morphing is deprecated in opencv

最佳答案

我最近写了一篇有关使用OpenCV进行脸部变形的文章。我已经在C++/Python中共享了代码。您可以在这里找到详细信息

http://www.learnopencv.com/face-morph-using-opencv-cpp-python/

但基本思路如下。

  • 在两个输入图像中查找点对应。
  • 在点上进行Delaunay三角剖分。
  • 变形量由参数alpha控制。例如,对于alpha = 0,您将在以下示例中获得Ted Cruz,对于alpha = 1,您将获得Hillary Clinton。对于其他任何Alpha,它将是两者之间的混合。通过对两个输入图像点进行加权平均,使用alpha来计算输出(变形)图像中这些点的位置。
  • 计算输入图像中每个三角形与目标图像(变形图像)之间的仿射变换。
  • 从每个输入图像到输出图像的变形三角形,并基于alpha混合像素。对每个三角形执行此操作,您将获得输出变形图像。

  • 希望这可以帮助。

    python - 使用opencv进行人脸变形-LMLPHP

    10-05 20:59
    查看更多