2016-04-14 1 views
0

J'ai une image PNG (en fait, tout un tas d'entre eux) qui est née avec un fond et a été remplacée par une transparence. Je ne suis pas sûr de la façon dont cela s'est passé, mais il y a un tas d'arêtes irrégulières dans le fichier que j'ai reçu et que je dois supprimer.Nettoyage par lots des bords irréguliers sur les fichiers PNG

Je sais comment résoudre ce problème dans GIMP/Photoshop, mais j'ai une pile de ces choses à corriger - J'ai besoin d'utiliser ImageMagick (ou un autre utilitaire de ligne de commande). Mon résultat souhaité est des bords nets sur l'image tout en conservant la transparence du canal alpha et la couleur des originaux sur eux. J'ai utilisé ImageMagick dans le passé pour convertir des formats de fichiers et redimensionner des images, mais je n'ai pas beaucoup d'expérience avec ça.

J'ai essayé beaucoup de choses différentes, mais une seule (ci-dessous) s'est approchée de ce que j'essaie d'accomplir.

Voici ce que j'ai commencé avec ...

enter image description here

Voici le meilleur que je suis en mesure d'accomplir

je ImageMagick pour le nettoyer avec des franges. J'ai utilisé cette commande:

convert test.png -alpha set -virtual-pixel transparent -channel A -blur 0x1.7 -level 50,75% +channel testFeathered.png 

enter image description here

Existe-t-il d'autres méthodes ou techniques n'importe qui recommanderait pour la réalisation de l'objectif d'un bord lisse à l'image sans déblayage la couleur?

+1

On pourrait jouer avec la morphologie de messagerie instantanée sur l'alpha canal pour supprimer certains pixels orphelins et opaques. Cependant, votre méthode semble assez solide. – rostok

+0

Merci pour votre réponse! Apprécier grandement la suggestion de morphologie. – Adrian

Répondre

1

Essayez d'utiliser potrace pour générer un vecteur lissé de l'opacité et de réappliquer revenir à l'image d'origine:

Donc, premier extrait du canal alpha dans un fichier PGM:

convert dress.png -alpha extract opacity.pgm 

Ensuite, lisser le canal alpha avec potrace et enregistrer en tant que opacitysmooth.pgm:

potrace -b pgm -o opacitysmooth.pgm opacity.pgm 

Puis l'opacité remplacer de l'image originale wi e lissé un:

convert dress.png opacitysmooth.pgm -compose copyopacity -composite result.png 

enter image description here

Une fois que vous obtenez tout ce compris, vous pouvez le faire en une seule fois comme ceci:

convert dress.png -alpha extract pgm:- | 
    potrace -b pgm -o - - | 
    convert dress.png - -compose copyopacity -composite result.png 
+0

Une solution géniale! Je n'ai jamais connu le potrace! Pour ceux qui suivent à la maison, c'est une formule Brew. http://brewformulas.org/Potrace – Adrian