Digitale Fotoentwicklung: Basiskurven für Darktable

Update 20.02.2017: darktable 2.2 und höher: Die Daten gehören nun in die data.db und nicht mehr in die library.db. Die Änderungen sind unten aufgeführt.

Ohne richtige Basiskurven (basecurves) macht die "Entwicklung" digitaler Fotos wenig Sinn. Für darktable lassen sich die Basiskurven jeder Kamera, die RAW-Bilder liefern kann, selber bestimmen. Hier eine sehr kurze Anleitung, wie man das macht. Sie besteht hauptsächlich aus dem Verweis auf Quellen.

Die Basiskurve wird aus dem RAW-Bild (bei Nikon die Endung .nef) und dem von der Kamera produzierten JPG-Bild erstellt. Idealerweise sollte dann darktable genau die selben Tonwerte liefern, wie sie Nikons eigene kamerainterne Software liefert.

Leider befinden sich die zur Erstellung der Basiskurve benötigten command-line-tools nicht in der gewöhnlichen Installation von darktable. Wer diese benötigt, ist fast gezwungen, die Quellen herunter zu laden und darktable selber zu kompilieren. Hier steht wie:

https://redmine.darktable.org/projects/darktable/wiki/Building_darktable_20

Vorher muss git installiert werden. So wie hier beschrieben: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

Diese Zusammenfassung gilt für Fedora (22-)24 (ausführen als root) (w get bitte zusammenschreiben):

w get http://prdownloads.sourceforge.net/saxon/saxon6-5-5.zip
mkdir -p /usr/local/share/java/
unzip saxon6-5-5.zip -d /usr/local/share/java/saxon6-5-5
cd /usr/share/java
ln -s /usr/local/share/java/saxon6-5-5/saxon.jar
ln -s /usr/local/share/java/saxon6-5-5/saxon-xml-apis.jar
echo '#!/bin/sh

exec java -classpath /usr/share/java/saxon.jar com.icl.saxon.StyleSheet "@0"' \
 | tee /usr/local/bin/saxon-xslt
chmod a+x /usr/local/bin/saxon-xslt
PATH="/usr/local/bin:$PATH"
dnf install cmake gcc-c++ intltool gtk3-devel libxml2-devel lensfun-devel \
librsvg2-devel sqlite-devel libcurl-devel libjpeg-turbo-devel libtiff-devel \
lcms2-devel json-glib-devel exiv2-devel pugixml-devel
git clone https://github.com/darktable-org/darktable.git
cd darktable
git tag # find the latest 2.0 release, e.g. release-2.0.6
git checkout release-2.0.6
./build.sh —buildtype RelWithDebInfo
./make install  # installiert darktable unter /opt/darktable

Dann wechselt man in das Tools-Verzeichnis und führt aus, was hier geschrieben steht:

https://github.com/darktable-org/darktable/blob/master/tools/basecurve/README.md

cd tools/basecurve
cmake -DCMAKE_INSTALL_PREFIX=$YOUR_INSTALL_PATH -DCMAKE_BUILD_TYPE=Release
cmake --build . -- install # installiert die binaries unter /usr/bin

Das folgende Script legt man an und macht es ausführbar (bspw. nach /usr/local/bin/gatheringstatistics.sh ):

#!/bin/sh

for raw in $1 ; do
     dt-curve-tool-helper "$raw"
done

Und dann kann es schon losgehen. Vorgehen wie unter https://github.com/darktable-org/darktable/blob/master/tools/basecurve/README.md beschrieben:

  1. Kamera auf Standard stellen, RAW und JPG absichern.
  2. 2-4 Bilder schiessen. Am besten in weisse Wolken fotografieren und ein Teil des Bildes mit Schwarz und einem Graufilter (8x) abdecken. Das Weiss (der Wolken) sollte überschiessen. Das Schwarz hat rgb-Wert 0,0,0, Weiss hat Wert 255,255,255 und das Grau liegt irgendwo dazwischen.
  3. Die Bilder in ein Verzeichnis kopieren, dort hinein wechseln.
  4. WICHTIG! Vorher aber die darktable-Datenbank sichern:
    cp ~/.config/darktable/library.db ~/.config/darktable/library.db_bak
    
    cp ~/.config/darktable/data.db ~/.config/darktable/data.db_bak
  5. Dann:
    gatheringstatistics.sh *.nef
    dt-curve-tool  -z -e eines_der_bilder.nef -n 16 | tee mycameracurves.sh
    ./mycameracurves.sh
  6. Ab dt 2.2 stimmt das Script nicht mehr. Entweder man ändert das Quellfile in ./darttable/tools/basecurce/dt-curve-tool.c und ersetzt darin library.db mit data.db oder man ersetzt in mycamervurves.sh den Dateinamen der Datenbank:
    rpl library.db data.db mycameracurves.sh
  7. Dann
    ./mycameracurves.sh

Das ist es schon. Ab sofort steht die Basiskurve für die eigene Kamera bereit.

Unten angehängt sind als Beispiel die Basiskurven für die D3200 und die D7000. Die beiden Scripte können einfach ausgeführt werden und ergänzen die Sammlung der Basiskurven um 'Nikon D3200' und 'Nikon D7000'.

AnhangGröße
basecurves_D3200-D7000.zip3 KB