Wie digitalisiert man ein Farbbild?

14

Mein Freund hat ein farbiges Bild mit chinesischer Handschrift (im Grunde genommen, indem er das, was er auf ein weißes Blatt Papier geschrieben hat, fotografiert oder gescannt hat), und er möchte, dass ich es in ein binäres Schwarzweißbild umwandle. Gibt es unter Ubuntu Anwendungen, die das können?

Hier ist ein Beispielbild:

Bildbeschreibung hier eingeben

StackExchange für alle
quelle

Antworten:

27

Was Sie wollen, wird in der Bildverarbeitung als "Schwelle" bezeichnet. Grundsätzlich nimmt es ein Bild als Eingabe und gibt ein Bild aus, bei dem alle Pixel mit einem Wert unter einem bestimmten Schwellenwert auf Schwarz gesetzt sind und alle Pixel, deren Wert über dem Schwellenwert liegt, auf Weiß gesetzt sind. Dies führt zu einem Schwarzweißbild von einem beliebigen Eingabebild.

Im Allgemeinen möchten Sie zuerst in Graustufen konvertieren, um vorhersagbarere Ergebnisse zu erzielen. Es ist jedoch auch möglich, ein Vollfarbenbild als Schwellenwert festzulegen.

Sie können ein grafisches Tool wie GIMP verwenden, um dies interaktiv zu tun (Sie finden das Tool über das Hauptmenü -> Farben -> Schwellenwert), oder Sie können ImageMagick wie folgt verwenden:

convert colored.png -threshold 75% thres_colored.png

Wenn Sie den obigen Befehl für das Beispielbild ausführen, wird das folgende Ergebnis angezeigt.

Schwarz-Weiß-Version des OP-Bildes

Da das Schwellenwertverfahren oft ein Versuch ist, mit dem Sie zufrieden sind, insbesondere wenn das Quellbild noch nicht sehr nahe an Schwarzweiß ist, empfehle ich, wenn möglich, den GUI-Ansatz Das ist aus irgendeinem Grund keine Option, die Sie auch über die Befehlszeile ausführen können. Zur genaueren Steuerung der Ausgabe können Sie Werkzeuge wie Farbkurven, Pegel und Kontrast zuerst verwenden, um die hellen und dunklen Bereiche des Bildes vor dem Schwellenwert besser zu isolieren. (Tatsächlich kann der Schwellenwert als extremer Fall der Verwendung des Farbkurvenwerkzeugs angesehen werden.)

ein CVn
quelle
2
Vielen Dank! Da ein Farbbild über drei RBG-Kanäle verfügt, für was gilt / kann die Schwelle im Allgemeinen gelten?
StackExchange for All
@Tim Es hängt wahrscheinlich von der Software ab, aber ich würde erwarten, dass der Schwellenwert (es sei denn, Sie geben ihn pro Kanal oder für einen bestimmten Kanal an, siehe z. B. ImageMagicks Konvertierungsoption -channel) auf eine Art "Wert" des berechneten Pixels angewendet wird von allen Kanälen. Das ist der Grund, warum ich gesagt habe, dass Sie möglicherweise zuerst in Graustufen konvertieren möchten, um vorhersagbarere Ergebnisse zu erzielen. (Siehe auch meine Bearbeitung.)
ein Lebenslauf am
Vielen Dank! Gibt es eine Dokumentation, für die der Schwellenwert in dem in Ihrem Beitrag angegebenen Befehl gilt?
StackExchange for All
@ Tim Nicht wirklich. Ich habe erwartet, dass die Konvertierung entweder einen Prozentsatz des Maximalwerts (der 256 pro Kanal betragen sollte) oder einen bestimmten Wert annimmt, aber ich konnte nur dann ein nützliches Ergebnis erzielen, wenn ich einen Prozentsatz angab. Wenn Sie dies mit einem grafischen Werkzeug, einschließlich GIMP, tun, erhalten Sie im Allgemeinen ein Histogramm, das die Tonverteilung des Bildes anzeigt. Das wird eine große Hilfe bei der Auswahl des richtigen Werts sein. Wenn Sie nur die Befehlszeile verwenden, ist dies wahrscheinlich mehr Mühe als es wirklich wert ist, es sei denn, Sie haben einen bestimmten Grund, dies zu tun .
ein Lebenslauf am
2
Als Randnotiz gibt es andere Schwellenwertmethoden, die nicht auf einem fest codierten Schwellenwert basieren müssen. Zum Beispiel beinhaltet ImageMagick, -latdass eine lokale adaptive Schwelle unter Berücksichtigung der umgebenden Pixel ausgeführt wird.
Voithos
7

Sie können Imagemagick verwenden:

convert test.png -colorspace Gray gray_colorspace.png

Von hier .

Folgendes habe ich nach der Bewerbung für Ihr Bild erhalten:

Bildbeschreibung hier eingeben

mkc
quelle
10
"Binary" kommt von "bi" und bedeutet "two". Ich gehe also davon aus, dass das OP das Bild in reines Schwarzweiß umwandeln möchte. Die Konvertierung in Graustufen ergibt weit mehr als zwei Stufen.
einen Lebenslauf vom
Einverstanden! macht Sinn, +1.
MKC
2

-Monochrom von ImageMagick ist eine Option, die intelligentes Dithering verwendet und die Ausgabe viel sichtbarer macht, als-thresholdwenn Sie sie für den menschlichen Verzehr vorsehen :

convert -monochrome signature.png out.png

Bildbeschreibung hier eingeben

Für ein so einfaches Bild macht es keinen großen Unterschied, aber für ein größeres ist es auffällig.

Ciro Santilli ist ein Schauspieler
quelle
1

Sie können dies auch einfach mit dem netpbmToolkit tun :

anytopnm inputfile | ppmtopgm | pgmtopbm > outputfile

ppmtopgmKonvertiert in ein Graustufenbild, pgmtopbmkonvertiert in ein Schwarzweißbild und leitet die Ausgabe in eine Datei um. Es wird im pbm-Format sein; Wenn Sie etwas häufigeres möchten, müssen Sie einen Ausgabekonverter (z. B. pnmtopngoder einen solchen) hinzufügen.

Wouter Verhelst
quelle