Wie kann man eine ungleichmäßige/verlaufende Beleuchtung auf einer Leinwand mit weißem Hintergrund korrigieren?

Ich habe ein Foto einer Bleistiftzeichnung auf Papier gemacht, aufgenommen mit einem Hotshoe-Blitz auf der DSLR und zwei Polarisationsfiltern ( Kreuzpolarisationstechnik für Leinwandfotografie).

Das Problem ist nun, dass die Beleuchtung bei Annäherung an die Zeichnung ungleichmäßig wird, da das Objektiv einen Schatten auf einen Teil des Bildes wirft. Dadurch entsteht ein Farbverlauf über dem Bild, der ungefähr, aber nicht ganz linear ist.

Unten ist ein Beispielbild; das Original ist etwa 3 cm breit.

Wie kann dies so bearbeitet werden, dass der Hintergrund gleichmäßig weiß ist?

Quellbild mit ungleichmäßiger Beleuchtung

-Bearbeiten-

Gescannte Ergebnisse unten, unkorrigiert und korrigiert. Während dies auf den ersten Blick recht vielversprechend aussieht, ist es leider die volle Auflösung , was Sie hier sehen (600 px breit); Der Scanner kann 300 dpi verarbeiten, und die Zeichnung ist etwa 2,5 cm breit. Dies ist etwas weniger im Vergleich zu den 5000 px von der Kamera.

Außerdem deutet der unkorrigierte Scan darauf hin, dass Graphit im Gegensatz zur Kreuzpolarisatortechnik tatsächlich einen guten Teil des Lichts reflektiert.

Unkorrigiert scannen Scan mit korrigierter Kurve

Gibt es einen Grund, warum Sie ein Foto davon machen, anstatt es zu scannen?
Ja; Die Leinwand kann größer als A4 sein. Aber ich werde die Ergebnisse am Abend vergleichen. Ich bin etwas misstrauisch gegenüber Reflexionen, die auf Graphit auftreten könnten.
@ColeJohnson Scan oben hinzugefügt.
Etwas anderes zum Ausprobieren: Besorgen Sie sich einen Leuchttisch oder hängen Sie Ihre Zeichnung einfach auf und strahlen Sie sie von der Rückseite hell an und fotografieren Sie sie mit dem durchscheinenden Licht ( lassen Sie das Papier selbst als Diffusor wirken). Das funktioniert natürlich nicht mit deckenden Farben oder wenn auf der Rückseite etwas gezeichnet ist, aber bei einseitigen Bleistift-, Buntstift-, Tusche- oder Aquarellbildern kann es einen Versuch wert sein.

Antworten (4)

Die Methode, die ich selbst verwendet habe, ähnelt Ihrer , verwendet jedoch das Resynthesizer-Plug-In (für GIMP) oder Content-Aware Fill (für Photoshop), um den Verlauf zu rekonstruieren:

  1. Erstellen Sie eine Auswahl, die die Zeichnung vollständig abdeckt. Sie können dies von Hand tun oder eine Hochpassfilterung verwenden, um eine Auswahlmaske wie folgt zu berechnen:

    • Beginnen Sie mit der Verwendung eines Kantenerkennungsfilters wie Differenz der Gaußschen auf (einer Kopie von) Ihrem Scan, um die Zeichnung grob zu extrahieren:

      Schritt 1.1: Extrahieren Sie die Zeichnung mit der Differenz der Gaußschen

    • Wenn dem Ergebnis der Kontrast fehlt, verwenden Sie das Tonwertkorrektur- Werkzeug, um es abzudunkeln:

      Schritt 1.2: Pegel anpassen

    • Wenden Sie etwas Gaußsche Unschärfe an :

      Schritt 1.3: Gaußsche Unschärfe anwenden

    • Verwenden Sie das Threshold- Tool, um eine Maske zu erhalten, die die gesamte Zeichnung abdeckt, und verwenden Sie Select by Color , um sie auszuwählen:

      Schritt 1.4: Verwenden Sie das Schwellenwerkzeug, um eine Maske zu erhalten

  2. Sobald Sie eine Auswahl haben, die die Zeichnung abdeckt, erstellen Sie eine Kopie der ursprünglichen Scanebene und verwenden Sie Auswahl heilen / Inhaltsbasierte Füllung , um sie auszufüllen. Im Idealfall sollte Ihre kopierte Ebene jetzt wie ein Bild eines leeren Blattes Papier aussehen:

    Schritt 2: Auswahl heilen, um leeres Papier zu rekonstruieren

  3. Stellen Sie den Modus der bearbeiteten Ebene wie in Ihrer eigenen Antwort auf Teilen ein. Wenn Sie etwas von der Papierstruktur und/oder Schattierung beibehalten möchten, können Sie die Deckkraft der Ebene ein wenig verringern und vielleicht ein wenig Unschärfe anwenden:

    Schritt 3: Teilen Sie durch leere Papierschicht

    (Im Bild oben ist die ausgefüllte Gaußsche Ebene um 10 Pixel unscharf und die Deckkraft auf 95 % eingestellt.)

  4. Optional können Sie nach dem Zusammenführen der Ebenen die Pegel anpassen, um den Schwarzpunkt festzulegen (Tipp: Verwenden Sie die logarithmische Histogrammansicht) und den Kontrast erhöhen:

    Schritt 4: Pegel anpassen

(Ps. Klicken Sie auf die Bilder in halber Größe, um sie in voller Größe anzuzeigen.)

Das Schöne an dieser Methode ist, dass sie auch für ziemlich nichtlineare Schattierungsverläufe ziemlich gut funktionieren kann. Natürlich ist es nicht perfekt – wenn das Papier beispielsweise einen unregelmäßigen Fleck hat, dessen Grenze teilweise unter der Zeichnung liegt, ist es unwahrscheinlich, dass die inhaltsbasierte Füllung diesen korrekt rekonstruiert. Dennoch, wie oben gesehen, liefert es oft ziemlich anständige Ergebnisse.

Das ist sehr cool und eigentlich das, was ich zuerst machen wollte, aber ich habe den Resynthesizer nicht gefunden! Werde das morgen mit ein paar Zeichnungen ausprobieren. Neugierig auf eine, bei der größere Teile der Zeichnung abgedeckt sind. Dein Ergebnis sieht schon mal toll aus.
Scheinbar kann ich Heal Selection leider nicht in Gimp registrieren lassen …
Das ist seltsam. Arbeiten Sie mit Windows oder Linux? Eine Möglichkeit ist, dass Sie Python nicht zur Verfügung haben oder GIMP es aus irgendeinem Grund nicht findet. In diesem Fall funktioniert die Heilungsauswahl möglicherweise nicht, aber der grundlegende Filter > Karte > Resynthetisieren (der alles kann, was die Heilungsauswahl kann, auch wenn die Benutzeroberfläche möglicherweise nicht so bequem ist) sollte immer noch verfügbar sein.
Ich bin auf Linux und musste das Plugin selbst kompilieren. Karte > Neu synthetisieren ist tatsächlich verfügbar. Wie kann ich überprüfen, ob Gimp die erforderliche Python-Version findet? Ich habe 2.7.5 und 3.3.2 installiert.
Ich bin mir nicht wirklich sicher; Ich benutze Ubuntu selbst und lasse APT einfach die Dinge erledigen. Erscheint bei Ihnen überhaupt das Python-Fu-Untermenü ? Wenn nicht, müssen Sie möglicherweise GIMP-Python installieren (falls es separat von GIMP selbst verfügbar ist) und/oder GIMP mit aktivierter Python-Unterstützung neu kompilieren. Andererseits vermute ich hier wirklich nur.
Python-Unterstützung scheint verfügbar zu sein. Habe jetzt eine Frage auf Stack gestellt.
Habe es jetzt zum Laufen gebracht! Die Ergebnisse sind gut, jedoch hatte ich Probleme mit einigen Zeichnungen, die einheitliche Bereiche enthielten, die keine Kanten erzeugten. Das Schreiben von Hand war schneller und zuverlässiger; schließlich kann man nicht zu viel abdecken, nur zu wenig. Und wenn man bedenkt, dass der Heal-Befehl 11 Minuten auf 4 Kernen (16-MP-Bild) dauert, ist eine halbe Minute Maskierung von Hand in Ordnung, denke ich :) – vielleicht können wir die Frage in zwei Teile zu linearem Farbverlauf und nichtlinearem Hintergrund aufteilen?
@Simon: Ein Trick, mit dem Sie das Werkzeug "Auswahl heilen" beschleunigen können, besteht darin, den Scan zu verkleinern, dann zu maskieren und zu heilen und ihn dann wieder auf die Originalgröße zu skalieren. Es ist sowieso nicht so, dass Sie alle Details der Papierkörnung neu synthetisieren müssen, besonders wenn Sie sie nur verwischen wollen.
Hätte selbst darauf kommen können. Habe ein weiteres Skript geschrieben. So ist es in 30 Sekunden erledigt. Sehr cool.

Bearbeiten: Ich habe ein Gimp-Skript geschrieben , das die folgenden Schritte ausführt, und ein weiteres für Ilmaris answer . Beide Skripte stehen auf GitHub zum Download bereit . Der vorgeschlagene Weg ist dieser .


Ich beantworte dies hier, weil ich seit geraumer Zeit nach einer Lösung gesucht und eine einfache und funktionierende gefunden habe. Kommen wir gleich zum Ergebnis:

  1. Erstellen Sie eine Hintergrundebene, indem Sie nur einen vertikalen Streifen des Hintergrunds kopieren und ihn auf die Größe des Originalbilds strecken.

    In Gimp: Wählen Sie rein Rechteck mit Hintergrund von oben nach unten aus, fügen Sie Shift+Ctrl+Ves in ein neues Bild ein und erweitern Filter > Map > TileSie es auf Bildgröße, führen Sie eine Gaußsche Unschärfe darüber und kopieren Sie es dann als neue Ebene zurück in das Bild.

  2. Stellen Sie den Ebenenmodus auf Division ein .

  3. Ebenendeckkraft wie gewünscht reduzieren, zB auf 90 %. 100 % eingeschaltet zu lassen ist normalerweise etwas zu hell.

Teilungsschritte

Im Wesentlichen definiert die Hintergrundebene den RGB-Wert w„Weiß“ für jedes Pixel. Der Teilungsebenenmodus dehnt dann den Wert auf dem Bild von [0,w]auf [0,255](siehe GIMP-Ebenenmodi ) pro Pixel.

(Schlechtes) Beispiel mit Kurven und linearem Verlauf

Bei den ersten Versuchen ging es immer darum, die Ebene zu duplizieren, die Helligkeit so zu ändern, dass der dunkelste Teil unten richtig beleuchtet wurde, und eine Ebenenmaske mit einem linearen Verlauf hinzuzufügen, um nur die dunkleren Bereiche aufzuhellen. Je stärker der Gradient, desto schlechter sah es aus.

Versuchen Sie es mit einem linearen Farbverlauf

(Besser) Beispiel mit Division

Die Division liefert viel bessere Ergebnisse; Die Beleuchtung ist gleichmäßig fixiert, und es gibt keine verbrannten Stellen, wie insbesondere im linken Teil der Zeichnung.

Division verwenden

Oder ändern Sie einfach die Ebeneneinstellung in Photoshop
Für noch bessere Ergebnisse, insbesondere bei nicht konstanten/nicht linearen Schatten in beiden Richtungen, kann es funktionieren, ein Foto von einem weißen Blatt Papier zu machen, etwas Unschärfe anzuwenden, um das Kamerarauschen zu beseitigen, und es zu verwenden das als Anpassungsschichtbasis.
@SaturnsEye Versuchen Sie es mit dem Eingabebild oben. Geht nicht ;) Wenn das Papier ein gleichmäßiges Grau wäre, so 10 %, dann ja, das wäre der einfachste Weg.
@PlasmaHH Dies würde erfordern, dass ich ein Stativ verwende, um eine konstante Entfernung zu erzielen, ist jedoch eine gute Lösung, insbesondere für stark gemalte Fotos. Die Rückseite des Papiers ist in der Regel sowieso weiß, also könnte man es für die Einstellungsebene verwenden. (Wir verwenden verschiedene Papiersorten mit unterschiedlichen Grau-/Brauntönen).
@SimonA.Eugster: Wenn ich diese Dinge mehr als nur ab und zu machen würde, würde ich sowieso ein Stativ und ein nachbildbares Lichtsetup verwenden, um konsistente Ergebnisse zu erzielen.
Ahh, du hast Recht, ich habe es fast geschafft, nur Ebenen zu verwenden, aber es ist einfach daneben. Sie gewinnen diese Runde, Sir! :)
Mit Afinity Photo habe ich den Mischmodus "Differenz" verwendet und musste das Ergebnis umkehren. Ich habe auch eine Schicht darüber gelegt, um die Dunkelheit zu verdunkeln.

Diese Antwort beschreibt den schnellsten zuverlässigen Ansatz, den ich kenne, basierend auf der Antwort von Ilmari Kanoren . Es ist halbautomatisch; Die automatische Maske funktioniert nicht für harte Bilder wie das untenstehende, da es in einigen Teilen der Zeichnung keine Kanten gibt.

Dieses Gimp-Skript automatisiert die Schritte 3 und 4 (beachten Sie, dass Resynthesizer erforderlich ist), sodass der Arbeitsablauf nur so aussieht: Auswahl erstellen, Skript ausführen. Es dauert 6 Sekunden, bis das Skript ein 15-MP-Bild auf meinem 3 Jahre alten Laptop fertig gestellt hat.

Geben Sie hier die Bildbeschreibung ein

Schritt 1 (optional): Passen Sie die Kurven für tiefes Schwarz an

Schwarzer Punkt

Schritt 2: Wählen Sie das Objekt aus

In Gimp ist die Quick Mask Shift+Qein schneller Weg. Verwenden Sie den Stift Nund malen Sie das Objekt weiß, drücken Sie Shift+Qerneut, um die Maske in eine Auswahl umzuwandeln.

Objekt ausgewählt

Schritt 3: Erstellen Sie den Hintergrund neu

  • Duplizieren Sie das Bild und skalieren Sie es auf 400 × 400 px
  • Verwenden Sie Auswahl heilen oder inhaltsbasierte Füllung , um das Objekt zu heilen (nur der Hintergrund bleibt)
  • Verwenden Sie Gaußsche Unschärfe, 40 × 40 px
  • Skalieren Sie das Bild wieder auf Originalgröße und kopieren Sie es als Ebene auf das Originalbild zurück

Hintergrund

Schritt 4: Divisionsmodus

Stellen Sie den Ebenenmodus auf Teilung ein und reduzieren Sie die Deckkraft, falls gewünscht, etwas.

Festes Bild

Dies ist das Fotografie-Forum, also werde ich einen fotografischen Ansatz verfolgen. Natürlich benötigen Sie für ein perfektes Weiß wahrscheinlich noch einige Nachbearbeitungen.

Anstatt einen Blitz zu verwenden, können Sie versuchen, natürliches Licht zu verwenden. Vermeiden Sie direkte Sonneneinstrahlung, halten Sie sich auch nicht zu nah am Fenster auf, sondern möglichst 2 Meter vom Fenster entfernt. Dies dient dazu, den Lichtunterschied zwischen dem nächstgelegenen und dem am weitesten entfernten Teil der Zeichnung zu verringern. (Aber da dies ein kleines Bild ist, ist diese Entfernung möglicherweise nicht so wichtig.)

Sie können ein Stativ nach unten richten und Ihre Zeichnung auf den Boden legen.

Oder wenn Sie kein Stativ haben, können Sie einen Buchumschlag oder eine Müslischachtel anordnen, um das Bild vertikal auf einem Tisch zu halten, und Ihre Kamera stabil auf denselben Tisch stellen. (Legen Sie ein weißes Blatt Papier hinter Ihre Zeichnung, um die Hintergrundbilder oder Texturen nicht zu sehen.)

Die Polarisatortechnik, die Sie erwähnen, ist für den Fall, dass Sie die Zeichnung hinter einem Glas haben und wenn Sie helle Objekte oder Reflexionen haben. Aber wenn Ihre Lichtquelle in einem schrägen Winkel ist, müssen Sie wahrscheinlich keinen Filter verwenden.

Umgebungslicht ist mir bekannt. Es würde wahrscheinlich bessere Ergebnisse in Bezug auf den Verlauf erzielen, obwohl die Linse in dieser Entfernung höchstwahrscheinlich bereits anfangen würde, einen Schatten auf das Papier zu werfen. Der Polarisator ist hier tatsächlich erforderlich, da die Papieroberfläche nicht eben ist und Graphit überraschend gut Licht reflektiert, je dunkler der Bereich sein soll ;) Außerdem kann ein etwas festerer Druck mit dem Bleistift Vertiefungen erzeugen, in denen Umgebungslicht erneut reflektiert werden kann .