【发布时间】:2016-01-23 22:16:16
【问题描述】:
我检查了一些已经回答的关于使用OpenCV 添加(合并/合并)两个图像的问题。但我的问题在这里有点不同。我想添加/合并/合并图像 A 的一部分到图像 B。考虑下面的例子:-
在这张照片中,Image A - 戴眼镜的家伙
Image B - 不戴眼镜的家伙(憨豆先生)
所以,我正在寻找的是一些algorithm 或OpenCV 中的函数,通过它我可以使Image B 具有Image A 的只有眼镜(即合并部分将Image A 转换为Image B。)(另外,请不要 - 我不希望我的结果看起来像Image C 这里是两个图像的变形版本。我只想添加来自@ 的眼镜987654334@ 到Image B。休息一切都会像Image B 一样
非常感谢任何帮助:)
就我而言,编程语言并不重要。我可以使用任何语言 C++、Java、python、Ruby 等。 如果您仍然不理解我的问题,我可以再次解释。 期待一些好的解决方案。谢谢
【问题讨论】:
-
您需要先分割眼镜。然后只需将
copyTo与分段掩码一起使用。 -
感谢@Miki 的回复。是的,细分是一个不错的选择。但是,分割可能无法正常工作,如果我的图像 B 没有正确对齐或具有像这张图像一样的侧角 - 3.bp.blogspot.com/-imSsKoyz9Ss/VfpcPPp78aI/AAAAAAAAA1I/… 所以,我正在考虑更多的通用方法,比如重新基于图像 B 重新动态地重新绘制图像 B ' s 角度或对齐方式。这样的事情可能吗?
-
要做到这一点,您需要眼镜和面部的 3D 模型
-
我们可以从他们的 2D 版本重新创建图像 A 和 B 的 3D 模型吗?
标签: java python c++ opencv image-processing