如何参考三个点将图像的一部分转移到另一幅图像?

时间:2019-01-30 11:24:16

标签: python numpy opencv image-processing

我正在做一个小项目,我需要从人像图像中提取头发,然后将该头发图像交换到另一个图像的头部。基本上,这是一个换发项目。为此,我有:

  1. 拔毛部分
  2. 并使用无缝克隆将其放置到另一个图像的头部。但这并没有给我带来与预期相差很大的结果。

这是最后一张图片:

头发来源

Source of hair

拔毛

Extracted Hair

目标图片

Destination Image

无缝克隆后

Seamless Cloned

因为它没有给出好的结果。我在

上阅读了文档(第3.5节,发型编辑)
  

具有皮肤纹理的照片中的面部/发型交换模拟   合成

链接 Link for above documentation

有一个基本想法,我们可以使用参考点转移毛发部分。

但是,我不知道我们是否可以借助opencv python中的参考点进行传输。我可以找到要转移的坐标点。这没有问题。我想知道这项技术。我上网冲浪,但是没有找到任何东西。

所需结果:

Hair position reference points

使用参考点必须进行缩放,旋转并放置在所需的目的地。

希望,我已经清除了我的观点和要求。

更新:

仿射变换的结果,我之前尝试过:

Affine transform and then seamless cloning

1 个答案:

答案 0 :(得分:0)

Here是描述仿射变换的文档。使用两个图像中的指定点为warpAffine方法创建转换矩阵。将此变换应用于 hair 图像,然后将其与您的目的地图像混合。

相关问题