El bloc de d'Artagnan

Projecte Festes – siluetes amb transparències (2)

Posted in Geek life, Ubuntu by dartagnan on 2 gener 2010

En aquest apunt hi podeu trobar com automatitzar el pas anterior per fer-ho a moltes imatges alhora. Per resoldre aquest repte, m’he inspirat únicament d’aquest apunt de The Pasadena Ruby Brigade.

L’eina bàsica per al tractament massiu d’imatges és la comanda convert disponible en Ubuntu. Aquesta comanda pertany al paquet imagemagick.

La comanda convert ens permet definir un color com a transparent. Podem utilitzar tant els components RGB del color, com una sèrie de colors predefinits:

convert -transparent grey57 img1.png sil-simple.png

convert -transparent “rgb(145,145,145)” img1.png sil-simple.png

Podem obtenir la llista de colors predefinits amb la següent comanda:

convert -list color

I podem obtenir els components rgb del color de fons amb l’eina comptagotes de GIMP.

Si bé seria fàcil executar aquesta comanda sobre un munt d’imatges, la veritat és que els resultats no són tan bons com es podria esperar.

Afortunadament, la comanda convert ens proporciona el paràmetre fuzz per donar un cert marge d’error o de tolerància al filtre anterior. Podem, per exemple, executar les següents comandes amb els resultats que es veuen a continuació:

convert -fuzz 3% -transparent grey57 img1.png sil-fuzz3.png
convert -fuzz 11% -transparent grey57 img1.png sil-fuzz11.png

Opció Fuzz amb un 3% d'error.

Opció Fuzz amb un 3% d'error.

Opció Fuzz amb un 11% d'error.

Opció Fuzz amb un 11% d'error.

Una altra opció és utilitzar la directiva floodfill, que va convertint a transparent totes les zones connexes i de colors més o menys similars. cosa que en alguns casos dona millors resultats.

convert img1.png -bordercolor grey57 -border 1×1 -matte -fill none -fuzz 11% -draw ‘matte 1,1 floodfill’ -shave 1×1 sil-floodfill.png

Silueta de playmobil

Silueta de playmobil

Aquestes comandes es poden executar fàcilment sobre un munt d’imatges, per aplicar-los la mateixa transformació alhora:

convert img%03d.png -bordercolor grey57 -border 1×1 -matte -fill none -fuzz 11% -draw ‘matte 1,1 floodfill’ -shave 1×1 sil%03d.png

Advertisements

Una resposta

Subscribe to comments with RSS.

  1. […] life, Ubuntu by dartagnan on 3 Gener 2010 En aquest apunt, hi podeu trobar com posar totes les siluetes anteriors sobre una imatge de […]


Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s

%d bloggers like this: