Mit gphoto2 Kameradaten auslesen

Vielleicht für viele Fotofreunde ein alter Hut – ich entdeckte allerdings erst gestern, dass man mit der gphoto2 Applikation unter Linux (auch Mac OS X) einige Daten der digitalen Spiegelreflexkamera auslesen kann, an die man anderweitig nicht so einfach (sprich ohne spezialisierte Tools) herankommt.

Der Befehl

gphoto2 --list-config

lisstet für die angeschlossene (und aktivierte) Kamera alle auslesbaren Optionen an (in einer Art Filestruktur-Nomenklatur). Hier sind 2 Beispiele um die Anzahl der Auslösungen, bzw. die Geräteversion auszulesen

gphoto2 --get-config /main/status/shuttercounter

gphoto2 --get-config /main/status/deviceversion

Metadaten in Bilddateien (shotwell vs. digikam)

Nichts ist einfach in der Informationsverarbeitung.
Um überhaupt ein Foto in einer schon mittelmässig großen Sammlung wiederzufinden, benötigt man Tags – sog. Metainformationen – bspw. den Namen des Aufgenommenen.
Diese Informationen setze ich bspw. im Raw-Programm Corel Aftershot Pro. Es bietet sog. hirachische Tags an, bspw: „Persons/Alexandra“. Diese Tags werden auch in das exportierten JPEG miteingebettet.

Sowohl shotwell als auch digikam (zwei Bildverwaltungsprogramme für Linux) zeigen mir sie an – soweit, so gut. Allerdings möchte ich mit solch einem Bildverwaltungsprogramm auch JPEG’s verwalten, die ungetaggt durch bspw. das iPhone auf dem Rechner gelandet sind. Da ich unlängst auf den Linux Rechnern Ubuntu zum Einsatz bringe, setzte ich auf das dortige Standardprogramm shotwell, welches durch aufgeräumte Bedienoberfläche und durchdachte Benutzerführung glänzt….

..aber nur damit. Denn das setzen der Metainformationen ist in shotwell 0.12.3 (Ubuntu 12.04) eine Katastrophe. Mit der Option Tags, Titel und andere Meta-Daten in die Bilddateien schreiben können die gesetzen Informationen zwar wirklich in die Datei geschrieben werden, was da aber reinkommt ist Murks.
Und das ist genau das Gegenteil von dem was digikam macht – denn das Standard KDE Bildverwaltungsprogramm behandelt die Metainformationen vorbildlich. Hier die Erklärung

Bei den Metainformationen müssen wir EXIF, IPTC und XMP unterscheiden:

EXchange Image Format for Digital Still Cameras – Informationen werden direkt von der Kamera in die Bilddatei geschrieben (v.a. technische Informationen des verwendeten Equipments) und sind nicht dafür gedacht geändert zu werden, auch wenn das natürlich mit einigen Programmen möglich ist.

International Press Telecommunication Council – Informationen sind die älteren, einfach gehaltenen Informationen. In diesem Format – wir reden immer noch über die in der Bilddatei eingebettenen Informationen – gibt es das Feld Keywords bei dem mit Komma separiert eigenen Tags (z.B. „Alexandra“) gesetzt werden können.
Leider ist die Angabe eines Zeichensatzes nicht zwingend vorgeschrieben, weswegen man Ihn entweder angeben kann, oder den Umgebungszeichensatz wählt (UNIXoide Betriebssyteme: UTF-8).
Und schon die erste Schwäche von shotwell: Die Keywords werden mit einem Latin-1 Zeichensatz (wahrscheinlich ISO-8859-1) hereingeschrieben – ohne Angabe dessen – was alle anderen Programme, inkl. des Referenzprogramms exiftools dazu veranlasst bspw. Umlaute falsch darzustellen.

eXtensible Metadata Platform ist Adobe’s letzter Streich um eine XML-basierte offene und erweiterbare Metainformationsplattform zu schaffen. Durch die Erweiterbarkeit gibt es allerdings gleich mehrere Abschnitte einer XMP Information – die übrigens sowohl in die Bilddatei eingebettet werden, aber auch als sog. sidecar file separat vorliegen kann.
Die wichtigesten Abschnitte sind Dublin Core bei den die Informationen im Feld Subject vorliegen als auch lr (Adobe Lightroom) – bei dem das Feld hierarchicalSubject gesetzt wird und genau hier kann man anstatt „Alexandra“ bspw. „Persons|Alexandra“ setzen (genau mit dieser Schreibweise).
Und genau hier versagt shotwell grandios: Anstatt „Persons|Alexandra“ in das Feld zu schreiben, wird „Persons, Persons/Alexandra“ geschrieben und in Dublin Core wird anstatt „Alexandra“, „Persons, Alexandra“ geschrieben. Diese Fehlinformationen bringen dann wiederum andere Programme, die die Metainformationen richtig handhaben (digikam,Corel Aftershot Pro,Adobe Lightroom) ausser Tritt. Die Portabilität ist hinüber.

Trotz Ubuntu ist digikam wieder das Bildverarbeitungsprogramm der Wahl auf Linux!

praxis tipps: Pfad der .icc Dateien

Die 10. Suchaktion nach den .icc files auf meinen Rechnern, ist der Anlass diese Zusammenfassung zu schreiben:

Auf Mac OS X werden die .icc’s in folgenden Pfaden abgelegt:

global:
/Library/ColorSync/Profiles/
lokal:
~/Library/ColorSync/Profiles/

ev. existiert unterhalb dieser Verzeichnisse noch ein Display directory.

Auf Linux und Solaris gibt es keine Regel, d.h. der File Hierarchy Standard gibt keine Richtlinie aus – wohl aber haben sich Standardpfade eingebürgert, welche auf der OpenIccDirectoryProposal Webseite ausführlich dargelegt sind. In Kürze sind das:

global:
das Unterverzeichnis /color/icc der Verzeichnisse aus den Systemvariablen
$XDG_DATA_DIRS
$XDG_CONFIG_DIRS

..also normalerweise..
/usr/share/color/icc
/usr/local/share/color/icc
..oder eventuell auch..
/var/lib/color/icc

lokal:
$XDG_DATA_HOME/color/icc
normalerweise: ~/.local/share/color/icc

$XDG_CONFIG_HOME/color/icc
normalerweise: ~/.config/color/icc

auch hier können sicher unterhalb dieser Verzeichnisse Subdirectories, bspw. device befinden.

ColorManagement und LUT’s

Die Wirkung auf das Auge muss bestehen bleiben…

..das ist das Ziel von Farbmanagement, wenn Farben von einem Farbmodell in das andere (z.B. vom Bildschirm zum Drucker) oder von einem Gerätefarbraum in einen anderen (z.B. von DSLR zu Monitor) überführt werden.

Beim Farbmanagement gibt es 4 Teilaufgaben :

  1. Gerätecharakterisierung – wass kann das Gerät
  2. Gerätekalibrierung – Geräteigenschaften konsistent halten
  3. Farbumrechnung – Umrechnung in ein anderes Farbmodell
  4. Farbraumanpassung – Umrechnung in einen nicht gleich großen Farbraum

Unter Mac OS X ist ColorSync die Schnittstelle für alle diese 4 Aufgaben. Kalibrierungsprogramme – z.B. Eye-One Match liefern dieser Schnittstelle Daten, wobei Anwenderprogramme wie bspw. Bibble Daten zur Berechnung an diese weitergeben.

Unter Linux existiert leider kein ColorManagement Modul. Punkt 1+2 kann Argyll übernehmen. Punkt 3+4 muss das Anwenderprogramm übernehmen – oder spezialisierte Module wie LCMS von Scribus.

Während unter Mac OS X „installierte“ ICC Profile sofort in die in der Grafikkarte vorhandenen VLUT (Video Lockup Table) installiert werden – muss dies unter Linux mit dem dispwin Kommando manuell geschehen. Diesese legt man derzeit am besten unter:

/etc/X11/xinit/xinitrd.d/

ab. Zu beachten ist, dass mit dem Display Switch „-d“ auch zweite Monitore angesprochen werden können (genauere Hinweise siehe in diesem Artikel). Dies kann oder muss (Intel GMA950  mit LVDS/TMDS Problematik) man bspw. bei Intel Mobile GPU’s, die auch auf Desktops vorkommen, machen. Bei nVIDIA basierten GPU’s geht derzeit kein seperates LUT, was professionelle Multimonitorbildbearbeitung ausschliest. Auch fehlende XRANDR Unterstützung und das löschen des VLUT’s durch nvidia-settings machen sich negativ bemerkbar.

Eine Besonderheit stellen einige professionelle Geräte aus dem Hause EIZO dar. Dieser verfügen über ein Hardware LUT, welches nur durch die mitgelieferte Software ColorNavigator beschrieben werden kann. Dieser liefert zusammen mit dem ICC Profil äussert zuverlässige Ergebnisse – man kann unter Linux hier auch auf das „installieren“ des ICC Profils verzichten.

Abschliessend noch ein kleines selbstgeschriebenes Testprogramm, welches nur ein Bild auf einem wählbaren Monitor ausgiebt. Durch mehrfaches Starten des Programms kann man bei Multimonitorbetrieb die Unterschiede klar sehen.

screenshot.png

Das Programm liegt als Mac OS X und Linux Version, sowie im Source Code bereit

Monitorkalibrierung

Bei extensiver RAW Verarbeitung von Fotos auf mehreren Rechnern lohnt es sich schon mal über eine Kalibrierung der Monitore nachzudenken.

Bei mir blieb es dann nicht beim Nachdenken – ich kaufte das X-Rite Eye-One Display II, welches native Mac OS X Software mitbringt und auf Linux mittels Argyll ohne Probleme angesteuert werden kann.

Die Prozedur besteht aus einer Monitorkalibrierung und der Profilerstellung die in einer .icc Datei mündet, die in die Video LUT (LookupTable) eingeladen wird und die Kalibrierung sofort sichtbar macht. Anwendungsprogramme müssen das Profil der .icc Datei auswerten.

Bei der Kalibrierung kann man entweder Zielvorgaben machen – Weißpunkt,Gammawert,Helligkeit – oder die nativen Werte des Monitors nehmen. Bei der Mac OS X Software heisst dass dann Basis- oder Erweiterer Modus.

Profilerstellung

Bei Argyll überspringt man beim interaktiven dispcal Befehl einfach den Menüpunkt mit der manuellen Kalibrierung.

Die Liste der Argyll-Befehle (alle im bin Verzeichnis des Argyll Paketes) lautet (root permission notwendig):

 dispcal -yl -qh monitor
 targen -v -d3 -f500 monitor
 dispread -v -yl -k monitor.cal monitor
 colprof -v -D"monitor" -qh -al monitor

Danach sollte man eine Datei namens monitor.icc haben. Diese muss man einmalig mit

dispwin -I monitor.icc

in den Video LUT installieren. Danach muss man bei jedem session start (z.B. KDE4 Autostart)

dispwin -L

angeben, so dass die Kalibrierung eingeladen (und damit dargestellt) wird.