Contact us
Leave a message

Please use:

My public cryptographic key


Member of

Post-processing

For further usage -- be it on the Web, be it for prints -- 190 MB TIFF files with ProPhoto RGB color space are somewhat impractical; rather, JPEG files in sRGB are what is needed here. Batch conversion using ImageMagick is the method of choice for this kind of job. Apart from colorspace and file format conversion, other post-processing steps can also be performed using this extremely powerful command-line tool -- for example level adjustment.

Why would one need adjustment of black and white levels of scanned images? Fact is, that histograms made from TIFF files generated during scanning clearly show that not the whole available range of brightness values is used, not even in the scan of the IT8 target, which should contain pure black and white:

Mein Irrtum Nr. 3

Obviously, approx. the lower 4% and the upper 10% of the brightness gets ignored -- heaven knows why. Yet with 16 bit resolution, there's still some 56,000 possible birghtness values within the actually used range, which is still more than 200fold the amount of possible 8 bit values!. However, in order to make full use of those puny 256 8 bit values, both blackpoint and whitepoint level need to be adjusted to 4% resp. 90% during the JPEG conversion. This is one of the tasks the following shell script can perform for you and me:

Warum ist der DMin/DMax im Dia nicht RGB 255/255/255 bzw. 0/0/0 im profilierten Scan und warum will man meistens nach dem Anwenden des Profils den Kontrast des Bildes wie mit Ihrem Script erhöhen?

Dazu folgendes: Der Weisspunkt DMin eines Bildes kann bei einem Scan nicht 100% automatisch korrekt ermittelt werden. Stellen Sie sich einfach einen Scan einer grauen Betonwand vor. Wie soll eine Software hier automatisch einen Weiss- und Schwarzpunkt erkennen?

Die Profilierungssoftware geht daher vom schlimmsten anzunehmenden Fall aus, dass z.B. der DMin des Dias L=100 (also reine Luft) ist. Konvertiert man L=100 nach RGB bekommt man 255/255/255 für Dmin. Doch gängige Diafilme erreichen selbst mit Pushen bei der Entwicklung und starker Überbelichtung kaum mehr als L=93. Die IT8 Dias von mir erreichen meistens L=92 im DMin. Rechnet man diesen DMin in einen RGB Wert um, erreicht man nur ca. 235 und nicht 255 als RGB Wert. Ähnlich verhält es sich mit dem DMax.

In der Praxis bedeutet dies, dass ein profilierter Scan etwas kontrastarmer aussieht, als er sein könnte.

Bei der Verwendung Ihres Scriptes zum Anheben des Kontrastes ist Vorsicht geboten. Ich halte die Whitepoint/Blackpoint Einstellung für zu aggressiv (siehe oben) und es dürfte bei einigen Usern Clipping auftretten.

Falls Sie zum Einstellen des Scriptes meine IT8 Dias verwenden: Achtung: Der niedrigste bzw. höchste R-, G- oder B-Wert im IT8 Dia befindet sich meistens in einer der Spalten 4, 8 oder 12 des IT8 Dias, nicht im DMin/DMax Feld! Auch wenn die von mir hergestellten IT8 Dias schon sehr nahe am maximalen DMin/DMax des Filmes liegen, sollte Sie etwas Sicherheitsreserven beim automatischen Anheben des Kontrastes einrechnen.

...und die Konsequenz daraus:

Als erste Maßnahme habe ich das ursprüngliche Skript dahingehend angepasst, dass es auf Wunsch zumindest Clipping im Helligkeits-Kanal vermeidet.

Im Laufe der Zeit hat das kleine Tool noch zahlreiche Optionen dazubekommen, die PuristInnen wahrscheinlich als "Verfälschung der Wirklichkeit" empfinden, die ich aber als lieber als "Werkzege zur Steigerung des künstlerischen Ausdrucks" bezeichnen möchte... ;)

Das Skript scans2jpg.sh ist ebenfalls über mein entsprechendes GitLab-Projekt erreichbar; es folgt ein Überblick über seine Funktionen zur Bildmanipulation. (Funktionen bezüglich des Arbeitens mit ganzen Ordnern voller Scans habe ich ausgelassen. Angaben zu allen Funktionen erhält man bei Aufruf des Skripts mit dem Parameter -?.)

Alle Bildmanipulationen werden übrigens -- soweit sinnvoll -- im Lab-Raum durchgeführt, um Farbverfälschungen möglichst gering zu halten.

-a <sigma> (Adaptive sharpening)

Wendet die -adaptive-sharpen-Funktion von ImageMagick mit dem angegebenen Sigma-Wert an.

Die mittlere Spalte zeigt den letztlich gewählten Wert für die Stärke des Effekts; bei allen Scans wurden zudem der Schwarz-Level auf 2% eingestellt (mit Clipping-Prevention).

-b <percent> (Black level)

Setzt den Schwarz-Level des Bildes auf den angegebenen Prozent-Wert; ist -n gegeben, wird der Schwarz-Level allerdings nicht über den minimalen Helligkeitswert im Ausgangsbild erhöht ("Clipping Prevention").

-l <sigma>, -L <radius> (Local contrast enhancement)

Wendet über die ImageMagick-Funktion -unsharp eine Unschärfe-Maske mit gegebenem Radius und Sigma-Wert an.

Die mittlere Spalte zeigt den letztlich gewählten Wert für die Stärke des Effekts; bei allen Scans wurden zudem der Schwarz-Level auf 2% eingestellt (mit Clipping-Prevention).

-s <slope> (Sigmoidal contrast enhancement)

Wendet über die ImageMagick-Funktion -sigmoidal-contrast eine globale, sigmoide Kontrasterhöhung mit der angegebenen Steigung an; der Mittelpunkt der Kontrastkurve wird dabei fest auf 50% eingestellt.

Die mittlere Spalte zeigt den letztlich gewählten Wert für die Stärke des Effekts; bei allen Scans wurden zudem der Schwarz-Level auf 2% eingestellt (mit Clipping-Prevention).

-v <vividness> (Vividness)

Wendet unter Verwendung der ImagaMagick-Funktion -color-matrix einen Digital-Velvia-Effekt mit angegebener Stärke an (wie unter Global Color Modifiers beschrieben). Diese Funktion wird übrigens nicht im Lab-, sondern im RGB-Farbraum ausgeführt, da die beschriebene Methode nur hier Sinn ergibt.

Die mittlere Spalte zeigt den letztlich gewählten Wert für die Stärke des Effekts; bei allen Scans wurden zudem der Schwarz-Level auf 2% eingestellt (mit Clipping-Prevention).

-w <percent> (White level)

Setzt den Weiß-Level des Bildes auf den angegebenen Prozent-Wert; ist -n gegeben, wird der Weiß-Level allerdings nicht unter den maximalen Helligkeitswert im Ausgangsbild erniedrigt ("Clipping Prevention").

Meine Standard-Einstellungen

Für die Batch-Nachbearbeitung aller Scanns habe ich nach zahlreichen Experimenten die folgenden (eher konservativen) Paramter gewählt:

scans2jpg.sh -a 3 -b 2 -d <device-profile> -l 25 -L 0.15 -m -n -o -p <ref-path> -t <target-dir> -u <suffix> -v 5 <source-dir>

Dies scheint mir einen guter Kompromiss darzustellen zwischen Nähe zum Original und Verbesserung des Bildeindrucks.