Home / LinuxUser / 2010 / 09 / HDR-Workflow ohne Stativ und Mausklicks

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

„Klickbunt auf dem Server? Warum nicht, wenn's hilft!"
(220 Punkte bei 8 Stimmen)
Wheezy + Kernel 3.9.2 + LXDE
(185 Punkte bei 5 Stimmen)
KDE 4.10.2, Gnome 3.6 und mehr
(143 Punkte bei 5 Stimmen)
Google schmeißt Jabber raus ...
(121 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

HDR für Faule

HDR-Workflow ohne Stativ und Mausklicks

All-inclusive-Paket

Alle im Überblick erwähnten Schritte erledigen Linux-Programme. Die Kunst besteht darin, sie so zu verknüpfen, dass alles automatisch abläuft. Um das Installieren der notwendigen Werkzeuge kommen Sie allerdings nicht herum. Da es sich aber um Standard-Tools handelt, finden Sie diese in aller Regel in den Repositories Ihrer Distribution.

Die Tabelle "Notwendige Pakete" zeigt alle für den Workflow erforderlichen Programme. Ein Bash-Skript namens Hdrff verknüpft deren Funktionen zu einer Toolchain. Dieses Skript entwickelte der Autor für seine Bedürfnisse und Ausrüstung. Da jeder Kamerahersteller bei den RAW-Dateiformaten sein eigenes Süppchen kocht, kommen Sie nicht umhin, das Skript an Ihre Gegebenheiten anzupassen.

Das Skript selbst finden Sie unter [1], Nutzer der DVD-Edition finden es darüber hinaus auf der Heft-DVD. Listing 1 fasst nur die einzelnen Teilbefehle zusammen. Wie Sie das Skript einrichten und mit ihm arbeiten, zeigt der Kasten "Hdrff einrichten und verwenden".

Notwendige Pakete

Name

Beschreibung

ImageMagick Das schweizer Taschenmesser der automatischen Bildverarbeitung
Exiftool Lesen und Schreiben von EXIF-Daten
Enblend/Enfuse Kombiniert mehrere Dateien
Hugin Komplette Toolchain für Panoramaaufnahmen
Pfstools Basispaket zum Verarbeiten von HDR-Dateien
Pfscalibration HDR-Paket mit speziellen Tools für digitale Aufnahmen
Pfstmo Tonemapping-Programme (Umsetzung von HDR nach LDR)
Qtpfsgui Graphische Oberfläche für die verschiedenen PFS-Pakete
Ufraw RAW-Konverter mit GUI- und Kommandozeilen-Modus
Gimp Leistungsstarkes Programm zur Fotobearbeitung

Hdrff einrichten und verwenden

Die modular aufgebaute Skriptsammlung besteht aus dem Hauptprogramm Hdrff und verschiedenen Modulen, beispielsweise hdrff_copyFiles.inc. Kopieren Sie es mit den Modulen als Benutzer Root ins Verzeichnis /usr/local/bin. Die Konfigurationsdatei .hdrff kopieren Sie in Ihr Heimatverzeichnis und passen sie an Ihre Bedürfnisse an. Stellen Sie sicher, dass alle notwendigen Programmpakete installiert sind.

Hängen Sie danach die Speicherkarte ein. Passen Sie den Mountpoint gegebenfalls noch in der Steuerdatei .hdrff an (Variable MEDIA). Viele Linux-Distributionen hängen die Karte selbständig ein, den genauen Mountpunkt verrät ihnen der Befehl mount in der Konsole.

Im einfachsten Fall rufen Sie hdrff in einer Kommandozeile ohne weitere Parameter auf. Das Skript arbeitet alle konfigurierten Module in einem Rutsch ab. Je nach Anzahl der Bilder und der Geschwindigkeit Ihres Rechners dauert das eine ganze Weile.

Alternativ arbeiten Sie die Module auch häppchenweise ab. In diesem Fall geben Sie die Module beim Skriptaufruf auf der Kommandozeile mit an. Beachten Sie dabei die Reihenfolge:

$ hdrff copyFiles name2lc fixDate setRO
$ hdrff raw2tif findGroups

Die Bilder kopieren

Die meisten Kameras erlauben den Import über die USB-Schnittstelle, einfacher und batterieschonender geht es aber mit einem Kartenleser. Auch wenn sich die Hersteller inzwischen an den DCIM-Standard für die Dateiablage auf den Speicherkarten halten, variieren doch die Ordnernamen. Deshalb kopiert das Hdrff-Skript die Dateien über einen Find-Befehl auf die Festplatte (Listing 1, Zeile 2). Jede Datei, die das Tool findet, setzt es anstelle des geschweiften Klammerpaars in den Kopierbefehl ein.

Chmod entfernt danach zur Sicherheit die Schreib- und Ausführungsrechte der Bilderdateien, außerdem wandelt eine Schleife die Dateinamen von Groß- in Kleinbuchstaben um. Da Linuxrechner typischerweise mit einer auf UTC konfigurierten Hardware-Uhr arbeiten, während Digitalkameras meist Lokalzeit verwenden, setzt das Skript auch noch das Dateidatum gleich dem Aufnahmedatum.

Erzeugt Ihre Kameras nur JPEGs, erledigt der Convert-Befehl (Zeile 5) das Umwandeln in TIFF. Andernfalls greift das Skript auf den RAW-Konverter Ufraw-batch zurück (Zeilen 8 bis 10). Das TIF-Format erlaubt auch eine Kompression der Bilder. Das spart zwar Speicherplatz, verlangsamt aber das weitere Verarbeiten erheblich, weswegen wir in diesem frühen Stadium darauf verzichten.

Noch heute besitzen einige Kameras keinen Orientierungssensor. Deren Fotos müssen Sie anschließend manuell sichten und bei Bedarf von Hand rotieren. Aber auch sonst bietet es sich an dieser Stelle des Workflows an, innezuhalten und die Bilder einer kritischen Auswahl zu unterziehen. Die folgenden rechenintensiven Schritte dauern nämlich selbst auf aktuellen Rechnern lange, und jedes aussortierte Bild verkürzt die Gesamtrechenzeit.

Listing 1

# Dateien kopieren
find /mnt -iname "*.nef" -exec cp -va {} /data/orig \;
# JPGs nach TIF umwandeln
convert -verbose -quality 98 /data/orig/dsc_1234.nef /data/img/dsc_1234.tif
# RAW-Dateien nach TIF umwandeln
ufraw-batch  \
         --out-type=tif --out-depth=16 \
         --out-path=/data/img --overwrite --create-id=no /data/orig/*
# HDR-Gruppen finden (Aufnahmen maximal 1 Sekunde auseinander)
oldTime=0
for f in /data/orig/*.nef; do
   # Zeitstempel aktuelle Aufnahme berechnen
   newTime=$(exiftool -q -q -s -s -s -d "%s" -DateTimeOriginal "$f")
   if [ -z "$newTime" ]; then
     continue
   fi
   # Zeitvergleich
   if (( newTime-oldTime > 1 )); then
     # eine neue Reihe fängt an. Beende die alte Reihe
     ...
   else
     # aktuelles Bild an Liste anfügen
     ...
   fi
# Speichern der Vergleichszeit für nächste Aufnahme
   oldTime="$newTime"
 done
# CAs korrigieren
 caParms=$(tca_correct -o abcv dsc_1234.tif | tail -n 1)
 fulla $caParms -o ca_1234.tif dsc_1234.tif
# Bilder ausrichten
 align_image_stack -a AIS_ dsc_1234.tif dsc_1235.tif dsc_1236.tif
# Bilder mit enfuse verschmelzen
 enfuse -o enf_1234.tif ais_1234.tif ais_1235.tif ais_1236.tif
 mogrify -alpha off -compress zip  enf_1234.tif
# HDR erzeugen
 dcraw2hdrgen ais_1234.tif ais_1235.tif ais_1236.tif | \
                            sort -rn -k 2 > hdr.cfg
 pfsinhdrgen hdr.cfg | \
   pfshdrcalibrate -c none -r gamma --bpp 16 | \
      pfsclamp --rgb | \
        pfsout hdr_1234.hdr
# Tonemapping mit Fattal
 pfsin hdr_1234.hdr | \
   pfstmo_fattal02 -s 1 | \
     pfsgamma --gamma 2.2 | \
       pfsout fattal_1234.tif
# Tonemapping mit Mantiuk
 pfsin hdr_1234.hdr | \
   pfstmo_mantiuk06 -e 1 -s 1 | \
     pfsgamma --gamma 2.2 | \
       pfsout mantiuk_1234.tif
Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 80 Punkte (4 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

title_2013_06

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Emacs als Psychologe
Emacs als Psychologe
Tim Schürmann, 21.05.2013 11:49, 0 Kommentare

Wer beim Schreiben in Emacs nicht mehr weiter weiß oder schier an einer Programmieraufgabe verzweifelt, der kann den eingebauten Psychologen um Rat fragen.

1966 entwickelte der Infor...

Aktuelle Fragen

Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 3 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...
lvm wieder loswerden
Peter Dibbern, 11.04.2013 16:28, 4 Antworten
Ich habe sämtliche alten Kisten ausgeschlachtet und aus der Teilen einen Rechner zusammengeschrau...