使用Python Wand合成两个图像

10

我需要使用Python的Wand库(Python的ImageMagick绑定)来创建一个合成图像,但我在想如何实现除了简单地将前景图像复制粘贴到背景图像之外的其他功能时遇到了一些问题。我的目标是,假设我有两张像这样的图片:

foreground

并且

enter image description here

两个jpeg图片,我想去掉猫的白色背景,然后把它贴在房间里。其他Python图像模块(如PIL)的答案也可以,我只需要自动化合成过程的东西。提前致谢。


快速谷歌搜索“python复合图像”会得到许多结果(例如一些PIL函数)。就您目前的问题而言,我不知道您想要我们如何帮助。在尝试了一些东西之后,您可以考虑提出更具体的问题。 - Wesley Baugh
哦,是的,我应该补充一下,我已经尝试过“合成”(以及PIL的“paste”方法),但在这两种情况下,我都找不到一种自动化消除第一张图像白色背景的方法,然后再将其粘贴到第二张图像中。这是我的主要问题! - Alberto A
2个回答

17
您可以使用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()

这就是我一直在做的事情。但它并不能解决自动消除猫图像白色背景的问题。无论如何,感谢您的回答。 - Alberto A

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接