我正在使用OpenCV和Dlib在C ++中创建一个小项目。这是一个管道:
- 用2张脸加载图片
醇>
- 检测两张脸
- 使用Dlib形状预测器找到面部地标
- 使用这些地标创建面具
醇>
- 使用双面地标的变形蒙版和图像
醇>
- 混合所有图像(原始图像和2个扭曲图像)
醇>
- 切换面的正确颜色
醇>
有人知道如何纠正切换面的颜色以大致匹配原始面部?
使用seamlessClone后,我得到了这个结果。问题是我无法准确地为seamlessClone选择参数center
。我用这个代码来获取中心
Moments m = moments((mask>=50), true);
Point center(m.m10/m.m00, m.m01/m.m00);
我得到了这个结果。
正如你所看到的,第一张脸完全对齐但第二张没有:(在其他图像上它更糟糕。
任何想法用什么作为中心?