2017-10-13 8 views
0

J'ai environ 2700 images que je veux:Faire fond blanc transparent en utilisant ImageMagick

  • Convertir en .png
  • Faire le fond blanc, transparent

Pour ce faire, je l'ai téléchargé ImageMagick en utilisant Homebrew et a couru la commande ci-dessous dans le répertoire approprié:

find . -type f -name "*.jpg" -print0 | while IFS= read -r -d $'\0' file; do convert -verbose "$file" -transparent white "$file.png"; done 

Ce travail ked, cependant les images ont encore quelques points blancs autour d'eux comme sur l'image ci-dessous. Avec des bouteilles blanc cassé, c'est encore plus difficile car cela rend aussi une partie de la bouteille transparente! Dans photoshop, vous pouvez ajuster la "tolérance" de "MagicWand" pour vous assurer que cela ne se produise pas, mais je ne suis pas sûr comment vous pouvez faire cela en utilisant ImageMagick et ne trouve rien sur Google.

Example of Image with white crust around outside

Quelqu'un peut-il aider? Y a-t-il un moyen de faire ça avec ImageMagick? Existe-t-il une meilleure façon de traiter ces 2700 images pour supprimer le fond blanc?

Merci A

+1

Vous pourriez essayer de permettre certains * "fuzz" * ... 'convertir bottle.png -fuzz 10% -transparent blanc result.png' –

+0

En pratique, vous voulez utiliser l'équivalent de la couleur-à-alpha de Gimp, transforme les pixels gris sur les bords en pixels partiellement transparents. Il n'y a pas un tel opérateur dans magick mais une bonne approximation existe, voir [ici] (https://stackoverflow.com/questions/26408022/imagemagick-color-to-alpha-like-the-gimp) – xenoid

Répondre

0

option Utiliser -fuzz dans ImageMagick

$ convert img.jpg -fuzz 32% -transparent #ffffff out.png 

Cela vous permettra d'ajuster la valeur de tolérance. J'espère que cela a aidé.

+0

Merci Nipunasudha. Cela a aidé! Mais aussi, pour les bouteilles qui ressemblent au blanc, cela rend une partie de la bouteille transparente. Y a-t-il un moyen d'éviter que cela n'arrive? – Elfordy

+0

Voici le problème, chaque photo est différente l'une de l'autre, et vous seul savez quel est le sujet. Je ne pense pas qu'il existe un moyen propre de le faire, à moins de former un modèle d'apprentissage automatique pour détecter le sujet. Je suis aussi graphiste, et il n'est pas facile d'enlever le fond d'une bouteille et de le rendre transparent sans perdre de détails, même manuellement. – nipunasudha