Ich habe ein Foto von einem Dokument mit schwarzem Text auf weißem Hintergrund.
Das Foto hat ein paar Probleme:
Ich würde dieses Bild gerne bereinigen. Ich bin auf Linux.
Der Filter „Farben > Auto > Weißabgleich“ in GIMP liefert vielversprechende Ergebnisse. Allerdings wird der Hintergrund in verschiedenen Bereichen des Bildes nicht angeglichen.
Wenn ich aber nur einen Teilbereich des Bildes auswähle, funktioniert der Filter "Weißabgleich" in diesem Bereich tatsächlich besser.
Ich stelle mir also vor, dass das schrittweise Anwenden des "Weißabgleichs" in lokalen Bereichen des Bildes wirklich großartig funktionieren würde.
Ich stelle mir vor, dass der Filter "Weißabgleich" so implementiert ist:
Was ich mir stattdessen wünsche:
Kennen Sie so etwas, das es entweder in GIMP oder als eigenständige Software zB für die Linux-Befehlszeile gibt?
Ich nehme an, Sie haben aufgrund ungleichmäßiger Beleuchtung einen Gradienten in der Gesamthelligkeit. Wenn dies der Fall ist, können Sie die Ebene mit dem Bild duplizieren und die beste Korrektur auf jeden Teil des Bildes auf einer anderen Ebene anwenden: Kurven für Kontrast, Farbausgleich oder Entsättigung für den Weißabgleich.
Dann können Sie mit Ebenenmasken jede Region mit sanften Farbverläufen malen, um sie miteinander zu verschmelzen. Die Entsättigung kann als letzter Schritt verwendet werden, um die verbleibenden Unterschiede etwas auszugleichen.
Ein alternativer Ansatz könnte darin bestehen, die Ebene zu duplizieren (ich habe ein Foto mit meiner Hand gemacht, die die Hälfte der Karte schattiert, um das Problem zu reproduzieren):
Verwischen Sie es, bis der Text verschwindet:
Und dann subtrahieren Sie die resultierende Ebene von der ursprünglichen, wählen Sie den Mischmodus als "Kornextraktion", um die Ungleichmäßigkeit der Beleuchtung umzukehren:
Die Tiefpassfilterung, die Sie durch Weichzeichnen erreichen, ist nur dann effektiv, wenn Änderungen in der Beleuchtung viel weicher sind als die Textdetails, und es funktioniert am besten mit dünnerem Text, da er durch Weichzeichnen verschwindet. Beachten Sie, dass in diesem Fall der fettgedruckte Text beim Verwischen einen Heiligenschein verursacht, der beim Mischen invertiert wird. Sie können es mit einem größeren Radius versuchen oder versuchen, ihn zu maskieren, bevor Sie die duplizierte Ebene unkenntlich machen.
Beachten Sie auch, dass dieser Vorgang auch den Weißabgleich festlegt, da er die Farbkurven umkehrt.
Als letzten Schliff habe ich die Einstellung „Kurven“ angewendet, um den Kontrast zu erhöhen.
Es ist vielleicht nicht perfekt, aber ich bin tatsächlich überrascht, wie das herauskam.
Sie werden wahrscheinlich einige Erfolge haben, wenn Sie Ebenen in den dunkleren Kanälen ausführen (wenn das Bild gelb aussieht, den blauen Kanal aufhellen usw.). Sie können dies global tun. Dies ist wahrscheinlich zusätzlich zu (vorher) Pegeln auf dem *Wert"-Kanal. Im Wertkanal können Sie die schwarzen und weißen Eingabepunkte näher zusammenrücken und dann wahrscheinlich den Gammawert erhöhen, um das Papier aufzuhellen, das von der Unschärfe betroffen ist aus dem Druck.
Während das Entsättigen hilfreich sein kann, hinterlässt es einen grauen Hintergrund statt einen weißen, wenn es angewendet wird, bevor Sie die Hintergrundpegel anheben - es wird nützlich sein, sobald der Hintergrund weiß aussieht. Eine unscharfe Maske mit einem relativ niedrigen Wert, aber einem großen Radius kann weiße Bereiche um den Text hervorheben, während ein kleiner Radius einen Teil der Unschärfe beseitigen kann.
Ich empfehle Schwellenwerte nur , wenn Sie unbedingt Schwarzweiß bereitstellen müssen, da Graustufen einen Anti-Aliasing-Effekt haben.
Sobald Ihr Hintergrund weiß ist (rgb 255.255.255) und weit vom Text entfernt ist, kann eine lokale Fleckenentfernung erforderlich sein.
...Mischart als "Getreideextrakt"
Der "Teilungs"-Modus erzeugt auch schöne Effekte für Dokumente (kontrastreicher)
Hier eine Idee ohne konkrete Umsetzungshinweise. Wenn jemand dies in einer neuen Antwort konkretisieren kann, machen Sie weiter!
Zuerst macht man eine Kopie des Bildes, zB in einer neuen Ebene - je nach verwendetem Werkzeug.
In dieser Kopie glätten Sie zuerst ein wenig mit einem kleinen Radius. Das bedeutet, dass jeder Pixel ein gewichteter Durchschnitt seiner lokalen Umgebung wird.
Dann wenden Sie einen Median oder einen "unteren Median" mit einem Radius an, der größer als das durchschnittliche Zeichen ist. Das bedeutet für jeden Pixel (und jeden Farbkanal):
Dies gibt Ihnen eine Schätzung des Hintergrunds. Aufgrund der Funktionsweise von Medianen wird es jedoch wahrscheinlich "Stufen" in den Farben enthalten. Vielleicht gibt es etwas noch Klügeres als diese Mediane.
Verwenden Sie optional etwas Glättung (großer Radius), um diese Schritte zu eliminieren.
Subtrahieren Sie nun diese Ebene vom Originalbild.
Verwenden Sie optional "Weißabgleich" für das Ergebnis (wenn Sie mit GIMP arbeiten).
Ich weiß nicht, welches Tool ich wählen soll, wenn ich das alles umsetzen möchte. Bisher habe ich PHP verwendet, bin aber nicht davon überzeugt, dass dies überhaupt die beste Lösung ist.
schrottplatzfunkeln
Michael C
Donquijote
Donquijote
Donquijote
Michael C
Donquijote
Donquijote