【发布时间】:2019-04-27 18:24:02
【问题描述】:
我有两张图片 - 背景和前景,具有不同的照明条件和色调。他们每个人都包含一个人。我也为前景图像中的人设置了一个 alpha 蒙版。我想将前景中的人(使用蒙版裁剪)与背景图像混合,以便最终图像看起来好像前景中的人站在背景中的人旁边(即逼真的合成混合)。我已经有了分割蒙版,我能够从前景图像中得到裁剪出来的人。看起来我们需要确保适当的照明、饱和度和颜色匹配以获得自然的混合感觉。看起来,我们可以很容易地手动使用 Photoshop( link1,link2)。给定两张带有人物的随机背景和前景图像,如何以编程方式获得类似的结果?
以下是我尝试过的方法;但它们每个都有特定的问题,并且只适用于特定类型的图像。
1.OpenCV 无缝克隆 - 非常适用于平面图像和类似的对比图像。问题:- 重,污迹,不能概括为所有类型的图像。
2.逼真的风格转移 - 效果很好;但它很重,需要特殊训练,并且只适用于少数几类图像。仍然可能存在人工制品。
3.Fast Color Transfer (pyimagesearch) - 适用于平面背景。背景颜色平均会导致颜色溢出到图像 roi,从而失去其自然感觉。
还尝试了正常的 Alpha 混合、拉普拉斯混合、直方图匹配等。此外,还尝试了 CLAHE、伽马校正、直方图均衡、边缘混合等技术来调整和改进混合的输出。不幸的是,这些组合都没有达到预期的效果。(注意:-输出不应理想地看起来好像一层堆叠或粘贴在背景图像之上)。即我们需要一个无缝的自然混合。
这是否可能仅使用某些 AI 模型,或者是否有任何轻量级的方法可以在 java 中使用一些标准库执行自动图像堆肥(通常应该适用于任何两个图像)?
我们正在尝试实现类似于以下方法的东西:-
【问题讨论】: