2013-02-28 7 views
7

Potrzebuję użyć python Wand (obraz-magick powiązania dla Pythona), aby utworzyć obraz złożony, ale mam pewne kłopoty dowiedzieć się, jak zrobić coś innego niż po prostu kopiowanie wklejanie obrazu pierwszego planu do obrazu tła. Co chcę, ponieważ mam dwa obrazy jak:Kompozycja dwóch obrazów z różdżką Pythona

foreground

i

enter image description here

zarówno JPEG, chcę usunąć białe tło z kotem, a następnie wklej go na pokój. Odpowiedzi na inne moduły obrazu Pythona, takie jak PIL, również są w porządku, po prostu potrzebuję czegoś, aby zautomatyzować proces tworzenia kompozycji. Z góry dziękuję.

+0

Szybkie wyszukiwanie google dla 'python kompozytowych plony image' wielu wyników (np niektóre funkcje PIL [] (http://www.pythonware.com/library/pil/handbook/ image.htm)). Ponieważ twoje pytanie jest obecnie aktualne, nie wiem, w jaki sposób chcesz nam pomóc. Możesz rozważyć zadawanie bardziej szczegółowych pytań po wypróbowaniu czegoś. –

+0

O tak, powinienem dodać, że już wypróbowałem "kompozyt" (i metodę "wklejania" PIL), ale w obu przypadkach nie mogłem znaleźć sposobu na zautomatyzowanie procesu eliminacji białego tła pierwszego obrazu przed wklejeniem na drugi obraz. to jest mój główny problem! –

Odpowiedz

9

Można osiągnąć to za pomocą Image.composite() metody:

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() 
+0

To właśnie robiłem do tej pory. Ale to nie rozwiązuje mojego problemu automatycznego wyeliminowania białego tła kota. Dzięki za odpowiedź –

1

Dla tych, którzy natkną się to w przyszłości, co prawdopodobnie chcesz zrobić, to zmienić „biały” kolor w obrazie kota na przezroczyste przed wykonaniem kompozycja. Powinno to zostać osiągnięte za pomocą metody "transparent_color()" obrazu. Coś jak "fg_img.transparent_color (wand.color.Color ('# FFF')), prawdopodobnie także z parametrem fuzz.

Patrz: http://www.imagemagick.org/Usage/compose/ http://docs.wand-py.org/en/latest/wand/image.html

Powiązane problemy