10

我需要使用 python wand(python 的图像魔术绑定)来创建合成图像,但是除了简单地将前景图像复制粘贴到背景图像中之外,我在弄清楚如何做任何事情时遇到了一些麻烦。我想要的是,鉴于我有两个图像:

前景

在此处输入图像描述

两个 jpeg,我想删除猫的白色背景,然后将其粘贴到房间上。其他 python 图像模块的答案,比如 PIL,也很好,我只需要一些东西来自动化合成过程。提前致谢。

4

2 回答 2

16

您可以使用以下方法实现此目的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()
于 2013-03-03T11:26:38.893 回答
2

对于那些将来偶然发现这一点的人,您可能想要做的是在进行构图之前将猫图像中的“白色”颜色更改为透明。这应该可以使用 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

于 2014-10-13T03:28:58.287 回答