CMS-Workflow

Aus archium
Wechseln zu:Navigation, Suche

Ein einfacher OCR-Workflow mit IT8-Calibration Targets

Was sind ICC-Profile
Zunächst ist es wichtig zu verstehen, daß ein digitales Bild keine Farbe hat, sondern nur Zahlen als Stellvertreter für Farbwerte. Und einzig die Interpretation der Darstellungsgeräte entscheidet später über die vom menschlichen Auge wahrgenommene Wirkung. Zu den Darstellungsgeräten ist nicht nur ein (kalibrierbarer) Monitor zu zählen, sondern auch die Grafiksoftware, der Einfluß des Betriebssystems und mehr.
  • Ein einer Bilddatei beigefügtes ("appliziertes") ICC-Profil verändert das Bild nicht sondern gibt lediglich Auskunft darüber, wie die Farben zu interpretieren sind.
  • Es gibt standardisierte Farbräume (z.B. sRGB, eciRGB, AdobeRGB1998 uva.), für die es auch entsprechend standardisierte ICC-Profile gibt.
  • Wir haben in Grafikprogrammen nun die Möglichkeit, ein ICC-Profil anzuwenden. In diesem Fall wird die gegenwärtige Farbwirkung eines Bildes (inklusive der Wirkungen das applizierten ICC-Profils) auf einen Zielfarbraum umgerechnet und dieses Bild wird dann auch verändert! (Danach ist das vormals applizierte Farbprofil verschwunden und in der Regel durch das Farbprofil des Zielfarbraums ersetzt worden.)
  • Die Berechnung einer Farbumwandlung zwischen zwei Farbräumen folgt dem s.g. "Rendering Intent", einer Vorgabe für den Umgang mit Farben, die im kleineren oder verschobenen Zielfarbraum entweder nicht dargestellt werden können, oder auf einen größeren Farbraum ausgebreitet werden könnten. Nachfolgend wird der perceptuative/wahrnehmungsgetreue Rendering Intent verwendet.
  • Nachfolgend wird ein eigenes ICC-Profil generiert und zunächst appliziert. Ohne anschließende Umwandlung in einen standardisierten Farbraum darf das eigene ICC-Profil von der Bilddatei nicht getrennt werden, sonst werden die Farben verfälscht.

Software & Ausrüstung

Hier im Beispiel benötigt

Farbmanagement
Das Argyll Color Management System steht unter der GNU-Lizenz und macht die überteuerten proprietären CMS-Tools überflüssig.

Farbmanagement mit ArgyllCMS (Quelle: https://argyllcms.com/doc/ArgyllDoc.html)

Farbreferenz-Tafeln
Die IT8-Calibration Targets von Wolf Faust haben nicht nur einen fairen Preis, sie sind auch richtig gut und in sehr vielen Größen zu haben. Selbst Sonderformate kann er herstellen!
Bildbearbeitung
Es gibt kaum einen Bildbearbeitungsschritt, der nicht mit ImageMagick durchgeführt werden könnte.

Desweiteren sehr praktisch

Rohdatenverarbeitung
RawTherapee macht LightRoom und andere Platzhirsche eigentlich überflüssig. Es beherrscht u.v.a. Farbmanagement und auch Flatfield-Korrekturen (Entfernung von Beleuchtungsschwächen und Schatten durch Farbdivision mit einem rein weißen/grauen Referenzbild). Ein phantastisches Werkzeug!
Bildschirmkalibrierung (erfordert zusätzliche Hardware)
DispCAL (früher dispcalGUI) basiert auf ArgyllCMS und hat einen ähnlich großen Leistungsumfang
Metadatenbearbeitung im Bild
Exiftool liest und schreibt jedes Dateiformat ohne die Bilddaten zu verändern, auch bei JPEG.


Vorgehensweise beim Farbmanagement

Referenzbild, soll

Das Referenzbild wird unter identischen Einstellungen und Lichtverhältnissen gemeinsam mit den übrigen Vorlagen digitalisiert ...

Soll echt s.png

Referenzbild, ist

... und sieht dann sehr wahrscheinlich ein kleines bißchen anders aus, als im Original.

Temp s.png

Farbkorrektur mit ArgyllCMS

ArgyllCMS erkennt die Abweichung und errechnet mit Hilfe der Referenzwerte ein ICC-Profil zur Korrektur der Farbwerte.

Temp.diag s.png R080505.txt s.png

Korrektur durch Applizieren des eigenen ICC-Profils

Durch das Applizieren des eigenen ICC-Profils kann immerhin die Farbwirkung (aber nicht die identische Farbe!) ziemlich gut rekonstruiert werden.

Soll kuenstlich umgewandelt s.png

Wichtig!
Das eigene ICC-Profil wird nun auf alle Bilder appliziert, die mit dieser Kameraeinstellung digitalisiert wurden. Ideal ist es, diesen Schritt bereits an den Kamerarohdaten zu vollziehen.

Muster-Script für einen Batch-Job mit ArgyllCMS

  • Erzeugt werden zwei verschiedene ICC-Profile mit' und ohne Ausrichtung des Refenzbildes und des damit erzeugten Farbprofils am Weißpunkt.
#!/bin/bash
export LANG="en_EN.UTF-8"

scn=$1 # IT8-Bilddatei ohne Extension (.tif)
ref=$2 # Pfad zu IT8-Text-Referenz
cht='/usr/share/argyllcms/ref/it8.cht' # Auch andere Test-Patterns sind möglich
dgi="$scn.diag" # Wie soll die Diagnose-Datei heißen?

echo "Schritt 1: Messe TIFF-Datei aus"
argyll-scanin -v -dipo -a -O "$scn".measurement.ti3 $scn."tif" $cht $ref $dgi."tif"
# Erzeuge eine Kopie des augemessenen Bildes für die Weiterverarbeitung mit und ohne Weißpunktkorrektur
cp "$scn".measurement.ti3 "$scn".measurement_WhiteBlackPointCorrection.ti3
echo "cp "$scn".measurement.ti3 "$scn".measurement_WhiteBlackPointCorrection.ti3"

echo -e "\nStep 2: Calculate ICC-profile"
# Set up profile metadata
mnf='Universität Stuttgart, DH-Ringvorlesung'
mdl="Generated at $(date)"
dsc='Beispielhafte Farbkorrektur'
cpr='© usw.'
# Experimentiere mit diversen Einstellungen! Siehe "argyll-colprof --help"
# Using -ax gave lower dE in my experiments, but -al (the default) is also worth trying. If a small profile is needed,
# -qm seems to give only slightly higher dE values than -qh.
# opt='-ax -bn -nc -qh -U 1.15' 
# -q l[ow] m[edium] h[igh] u[ltra]
# opt='-ax -bn -nc -qh'
opt='-aX -bn -qu' #-am -nc -U1.15

# Erzeuge das Profil ohne Weißpunktkorrektur
argyll-colprof -v -A"$mnf" -M"$mdl" -D"$dsc" -C"$cpr" $opt -O "$scn".profile.icc "$scn".measurement
# Erzeuge das Profil mit Weißpunktkorrektur
argyll-colprof -R -v -A"$mnf" -M"$mdl" -D"$dsc" -C"$cpr" $opt -O "$scn".profile_WhiteBlackPointCorrection.icc "$scn".measurement_WhiteBlackPointCorrection

# Experimentiere auch mit Skalierung des Weißpunktes. Z.B. um eine Bild dunkler oder heller zu machen.
#argyll-colprof -U 0.97 -R -v -A"$mnf" -M"$mdl" -D"$dsc" -C"$cpr" $opt -O "$scn".profile_WhiteBlackPointCorrection_ScaledDarker.icc "$scn".measurement_WhiteBlackPointCorrection_ScaledDarker
#argyll-colprof -U 1.03 -R -v -A"$mnf" -M"$mdl" -D"$dsc" -C"$cpr" $opt -O "$scn".profile_WhiteBlackPointCorrection_ScaledLighter.icc "$scn".measurement_WhiteBlackPointCorrection_ScaledLighter

echo -e "\nStep 3: Überprüfe die Abweichung des generierten ICC-profiles von den Meßwerten"
# Siehe "argyll-profcheck --help"
argyll-profcheck -c -w -e "$scn".measurement.ti3 "$scn".profile.icc
argyll-profcheck -c -w -e "$scn".measurement_WhiteBlackPointCorrection.ti3 "$scn".profile_WhiteBlackPointCorrection.icc
#argyll-profcheck -c -w -e "$scn".measurement_WhiteBlackPointCorrection_ScaledDarker.ti3 "$scn".profile_WhiteBlackPointCorrection_ScaledDarker.icc
#argyll-profcheck -c -w -e "$scn".measurement_WhiteBlackPointCorrection_ScaledLighter.ti3 "$scn".profile_WhiteBlackPointCorrection_ScaledLighter.icc

echo -e "\nStep 4: Erzeuge .gam und .html-files zur visuellen Kontrolle des Farbraums im Browser" 
# Siehe "argyll-iccgamut --help" und "argyll-viewgam --help"
argyll-iccgamut -w "$scn".profile.icc
argyll-iccgamut -w "$scn".profile_WhiteBlackPointCorrection.icc
#argyll-iccgamut -w "$scn".profile_WhiteBlackPointCorrection_ScaledDarker.icc
#argyll-iccgamut -w "$scn".profile_WhiteBlackPointCorrection_ScaledLighter.icc

argyll-viewgam "$scn".profile.gam "$scn".profile.x3d.html
argyll-viewgam "$scn".profile_WhiteBlackPointCorrection.gam "$scn".profile_WhiteBlackPointCorrection.x3d.html

Ausführung

Beachte
Pfade bitte anpassen!'
Alle Beispiele gelten für Linux, die wesentlichen Werkzeuge existieren aber auch für Windows.

Den oben vorbereiteten ArgylCMS Batch-Job starten

$ it8_complete.sh it8-R120804 /usr/share/color/IT8-Referenzen/WolfFaust/R120804.txt

Das eigene ICC-Profil applizieren (mit ImageMagick)

Einzelne Datei

$ convert MEINBILD.tif -strip -profile /path/to/iccprofile/it8-R120804.profile_WhiteBlackPointCorrection.icc MEINBILD_sRGB.tif

Mehrere Dateien (Beispiel im Tiff-Format)

$ find -iname "*.tif" -exec convert {} -strip -profile /path/to/iccprofile/it8-R120804.profile_WhiteBlackPointCorrection.icc {}.tif \;

Das korrigierte Bild in einen standardisierten Zielfarbraum umwandeln (mit ImageMagick)

Einzelne Datei

$ convert MEINBILD.tif -profile /usr/share/color/icc/OpenICC/sRGB.icc -intent perceptual MEINBILD_sRGB.tif

Mehrere Dateien (Beispiel im Tiff-Format)

$ find -iname "*.tif" -exec convert {} -profile /usr/share/color/icc/OpenICC/sRGB.icc -intent perceptual {}_sRGB.tif \;
$ mmv "*.tif_sRGB.tif" "#1_sRGB.tif"

Das Ergebnis nochmal im direkten Vergleich

Soll – Ist

Soll echt s.pngTemp s.png

Soll – Korrektur

Soll echt s.pngSoll kuenstlich umgewandelt s.png