2017-12-29 19 views
0

Wenn ich versuche, Green (#09f80c) Farbe von diesem Bild zu entfernen unter BefehlImageMagick konvertieren -fill nicht Kanten ändert sich von einem bestimmten Palettenbereich

magick convert images/img001.png - fill transparent -opaque #09f80c images/tp.png 

I Bild unten bin immer:

Input Image

Dieses Bild bekomme ich als Ausgabe für obigen Befehl. Dieses Bild hat noch einige grüne Punkte an den Rändern. Wie man sie vollständig entfernt?

Output Image

Ich möchte konvertierte Bild nicht diese zusätzlichen Pixel haben.

Ihre Hilfe würde sehr geschätzt werden.

Antwort

0

Vielleicht sollten Sie versuchen -fuzz Argument z. B. -fuzz 40%.

Ich fand dies in der Dokumentation hier:

http://www.imagemagick.org/Usage/color_basics/#replace

+0

Danke für Ihre Antwort. Könnten Sie mir bitte im Falle meines Szenarios den vollen Befehl geben? Wie ich schon mit -fuzz probiert habe aber es gibt mir ein anderes irrelevantes Ergebnis –

3

In ImageMagick können Sie verwenden -fuzz wie Andy vorgeschlagen. Sie können den Fuzz-Wert jedoch nur so lange erhöhen, bis er andere Regionen sowie das Grün ändert.

Beginnen Sie mit der Messung der Farbe so nah wie möglich. Ich bekomme # 2FF81D

Hier ist etwa ein großer Fuzz-Wert wie möglich für dieses Bild. Aber es hat immer noch etwas Grün auf der Außenseite. (Unix Syntax)

convert green.jpg -fuzz 35% -transparent "#2FF81D" green_trans1.png 

enter image description here

Um die Wirkung zu reduzieren, können Sie die Grenze des transparenten Bereichs Antialiasing durch sie ein wenig Unschärfe und Verjüngung (via -Niveau).

convert green.jpg -fuzz 35% -transparent "#2FF81D" -channel a -blur 0x3 -level 50x100% +channel green_trans2.png 

enter image description here

Verwandte Themen