我需要使用 python wand(python 的图像魔术绑定)来创建合成图像,但是除了简单地将前景图像复制粘贴到背景图像中之外,我在弄清楚如何做任何事情时遇到了一些麻烦。我想要的是,鉴于我有两个图像:
和
两个 jpeg,我想删除猫的白色背景,然后将其粘贴到房间上。其他 python 图像模块的答案,比如 PIL,也很好,我只需要一些东西来自动化合成过程。提前致谢。
我需要使用 python wand(python 的图像魔术绑定)来创建合成图像,但是除了简单地将前景图像复制粘贴到背景图像中之外,我在弄清楚如何做任何事情时遇到了一些麻烦。我想要的是,鉴于我有两个图像:
和
两个 jpeg,我想删除猫的白色背景,然后将其粘贴到房间上。其他 python 图像模块的答案,比如 PIL,也很好,我只需要一些东西来自动化合成过程。提前致谢。
您可以使用以下方法实现此目的Image.composite()
:
import urllib2
from wand.image import Image
from wand.display import display
fg_url = 'http://i.stack.imgur.com/Mz9y0.jpg'
bg_url = 'http://i.stack.imgur.com/TAcBA.jpg'
bg = urllib2.urlopen(bg_url)
with Image(file=bg) as bg_img:
fg = urllib2.urlopen(fg_url)
with Image(file=fg) as fg_img:
bg_img.composite(fg_img, left=100, top=100)
fg.close()
display(bg_img)
bg.close()
对于那些将来偶然发现这一点的人,您可能想要做的是在进行构图之前将猫图像中的“白色”颜色更改为透明。这应该可以使用 Image 的 'transparent_color()' 方法来实现。'fg_img.transparent_color(wand.color.Color('#FFF')) 之类的东西,可能还带有模糊参数。
见: http ://www.imagemagick.org/Usage/compose/ http://docs.wand-py.org/en/latest/wand/image.html