Frequenztrennung

Kürzlich habe ich mich mit der Methode der Frequenztrennung zur Retusche beschäftigt. Bei den Fstoppers habe ich einen einen interessanten Artikel dazu gefunden, der mich aber mit Fragen zurückgelassen hat. Eine war: warum ist Lineares Licht die richtige Verrechnungsmethode für die beiden Ebenen? Und direkt im Anschluss die Fragen, wo eigentlich der Unterschied zwischen Addition und Subtraktion bei der Bildberechung liegt und wieso man einen Unterschied zwischen 8bit und 16bit Bildern machen soll. Also wollte ich mir das mal genauer ansehen.

Dabei musste ich mir erst mal ein paar Gedanken zu Verrechnungsmodi (Blend Modes) generell machen. Vielleicht lohnt es sich, mit dem Artikel anzufangen.

Aufgabenstellung

Ein Bild soll so in zwei zerlegt werden, dass das eine nur großflächige Veränderungen beinhaltet, das andere die feinen Strukturen. Bei einem Portrait z. B. soll das erste Bild nur Farben und große Strukturen wie Schatten beinhalten, die Hautstruktur soll sich im anderen wiederfinden. Die beiden Bilder sollen sich nachher über Ebenenverrechnung wieder zu einem zusammensetzen lassen, das sich nicht vom Original unterscheidet.

Skin-Demo-A

Warum? Weil man dann getrennt Korrekturen nur z. B. an der Hautfarbe machen kann, ohne die Struktur zu verändern und umgekehrt. Nicht modifizierte Stellen ergeben das Original, an den Stellen, wo man retuschiert, sieht das Ergebnis sehr natürlich aus.

Frequenzen

Feine Strukturen bedeuten eine rasche Änderung der Helligkeitswerte, einen starken lokalen Kontrast. Man kann die Änderungen als Überlagerung von Wellen in der Fläche sehen. Die feinen Strukturen bedeuten dann hohe Frequenzen, während die Änderungen über größere Abstände niedrige Frequenzen bedeuten.

Frequenzfilter in Photoshop

Photoshop kennt einen Hochpassfilter, dessen Aufgabe es ist, feine Strukturen aus dem Bild zu holen. Es gibt auch Tiefpassfilter, die allerdings nicht so heissen. Was tut man, wenn man feine Strukturen, also die hohen Frequenzen, verschwinden lassen will? Man verwendet einen Weichzeichner (Blur). Welcher ist eigentlich egal, bei Filtern wie Matter Machen (Surface Blur) oder Selektiver Weichzeichner (Smart Blur) muss man allerdings etwas aufpassen, da hier scharfe Kanten entstehen, die eigentlich für hohe Frequenzen stehen.

Bild zerlegen

Am Anfang gibt es ein Bild A, davon erzeugt man zwei Kopien. Nun verändert man die eine Kopie, so dass ein neues Bild B entsteht, z. B. mit einem Weichzeichner. Wie genau ist zunächst egal. Für das Beispiel habe ich einen Gaussschen Weichzeichner mit 6-Pixel-Radius verwendet.

Skin-Demo-B

Nun wird ein weiteres Bild C erzeugt, dass nur die Unterschiede zwischen A und B beinhaltet. Das sollte einfach sein, man muss nur die Differenz bilden. Praktisch macht man mit dem Menübefehl Bildberechnung (Apply Image) mit A als Ziel und C als Quelle.

Nun ist aber zu beachten, dass Photoshop als Ergebnis einer Rechung nur Werte zwischen 0 und 1 zulässt und alle anderen Werte abschneidet. Das ist bei der Differenzenbildung sehr ungünstig, insbesondere, wenn die Bilder sehr ähnlich sind. Also dividiert man durch 2 und verschiebt um ½ nach oben, dann bleibt die komplette Information erhalten.

c = f(a,b) = frac{a-b+1}{2}.

Dass dem so ist, sieht man leicht, wenn man sich die Extreme ansieht, also Kombinationen von a,b in {0,1}.

Skin-Demo-C

Anmerkung

In Photoshop kann man mit 8-bit, 16-bit oder auch 32-bit pro Pixel und Farbe arbeiten. Die oben verwendete 1 entspricht dann 255, 65536 oder 4294967295. Der Dialog Bildberechnung (Apply Image) bietet für die Methode Differenz zwei Parameter an zum Skalieren und zum Verschieben. Zum Skalieren benötigt man die 2, das ist der oben genannte Divisor. Bei der Verschiebung kann man leider nicht 0,5 eintragen, sondern muss den entsprechenden 8-bit Wert verwenden, die 128, unabhängig von der Bit-Tiefe des Bildes. Das führt immer wieder zu Verwirrung, weshalb man auf manchen Webseiten den Hinweis findet, man solle im 16-Bit-Fall das Bild B unbedingt invertiert mit Skalierung 2 zu A addieren. Mathematisch ist das identisch, praktisch habe ich auch keinen Unterschied erkennen können, weder bei 8-bit noch bei 16-bit.

frac{a+(1-b)}{2} = frac{a-b+1}{2} = frac{a-b}{2}+{1/2}.

Bild zusammensetzen

Jetzt gilt es noch, eine Formel zu finden, die die beiden Bilder B und C wieder zusammensetzt, so dass sich A ergibt. Einfach zusammenzählen geht natürlich nicht, weil skaliert und verschoben worden ist. Was ist zu tun? Ganz einfach: C verdoppeln, zu B hinzuzählen und 1 abziehen.

f(b,c) = b + 2c -1.

Das ist genau das, was die Verrechnungsmethode Lineares Licht tut.

Praktische Anwendung

In der Praxis wird man nicht einfach mit Bildberechnung (Apply Image) aus den mühsam getrennten Bildern gleich wieder eins machen. Man wird beide Bilder als Ebenen übereinanderlegen, B nach unten, C nach oben, und für C den Verrechnungmodus Lineares Licht wählen. So behält man zwei Ebenen, die man getrennt bearbeiten kann. Man kann auch weitere Ebenen dazwischenschieben, z.B. für die Korrektur von Hauttönen oder einzelnen zu hellen oder dunklen Stellen. Ab hier wird es Retusche, und darum soll es in diesem Artikel nicht gehen.

Skin-Demo-Final

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.