Lytro Hack: Daten und JPG-Bilder aus .LFP-Dateien exportieren mit lfpsplitter [Anleitung]

Lytro Hack: Daten und JPG-Bilder aus .LFP-Dateien exportieren mit lfpsplitter (Bild: Lytro Raw Ausschnitt, nachträglich eingefärbt) Lytro’s Desktop Software ist zwar nett und einfach zu benutzen, früher oder später möchte man aber vielleicht einen etwas tieferen Einblick in die LichtFeld Bilder, die man mit der Lytro LichtFeld Kamera aufgenommen hat, bekommen.
Der erste, der Lytro’s .LFP Dateiformat entschlüsselt und die Ergebnisse veröffentlicht hat, war Nirmal Patel.

Patel gibt einen Einblick in den Aufbau des .LFP Dateiformats:

The file itself is formatted as follows. First, a header:

# magic 12 byte header (LFP)
89 4C 46 50 0D 0A 1A 0A 00 00 00 01
# 4 byte length (0, since there is nothing in this section)
00 00 00 00

After this are a number of sections.

The data in the first is plain text
JSON table of contents describing what the rest of the sections in the file
contain. The remaining sections can be additional metadata, a depth lookup
table, compressed jpg images, or raw sensor data depending on the file.

Der Entwickler stellt auch gleich ein Kommandozeilen-Tool namens lfpsplitter zur Verfügung, mit dem die folgenden Daten aus .lfp und -stk.lfp-Dateien in separate Dateien extrahiert werden kann:

  • Metadaten
  • den sog. Depth Lookup Table
  • das Raw-Bild aus der Kamera (.lfp)
  • die JPGs der einzelnen Schärfeebenen für die Web-Ansicht(-stk.lfp)

Den Quellcode von lfpsplitter hat Patel imm lfptools Projekt bei GitHub veröffentlicht.

Anleitung: lfptools in Windows kompilieren:

Um den Code ausführen zu können, muss er erst kompiliert werden. Das ist z.B. mit cygwin möglich (Installation laut dieser Anleitung; wichtig: Pakete “gcc”, “gdb” und “make” in der Paketauswahl inkludieren. Dazu rechts oben auf “View” klicken, die Namen ins Suchfeld eingeben, und die rotierenden Pfeile anklicken, bis bei “bin” ein X zu sehen ist):

  • Die lfptools Dateien herunterladen und ins Verzeichnis c:\cygwin\home\<username> kopieren.
  • Cygwin starten und die folgenden Zeilen eingeben:
    gcc -O3 -Wall -c -o lfpsplitter.o lfpsplitter.c
    gcc -o lfpsplitter lfpsplitter.o -O3 -Wall
    (Wichtig: Große o’s, keine Nullen verwenden!)
  • Nach dem Vorgang sollte die neue Datei lfpsplitter.exe im selben Verzeichnis zu finden sein.

Kompilieren von lfptools mit Cygwin

Anleitung: lfptools in Windows ausführen:

  • Die eben kompilierte Datei in ein Verzeichnis deiner Wahl kopieren (für unser Beispiel verwenden wir c:/lytro/)
  • Nach C:\cygwin\bin navigieren und dort die Datei cygwin1.dll ins selbe Verzeichnis kopieren
  • Einige Lichtfeld Bilder in den Ordner kopieren (.lfp and -stk.lfp; zu finden im Verzeichnis C:\Users\<username>\AppData\Local\Lytro\images)
  • Die Windows Eingabeaufforderung starten (Win XP: Start – Ausführen – cmd; Win7: Start, “cmd” eingeben und bestätigen).
  • Ins gewünschte Verzeichnis wechseln (z.B. “cd c:/lytro/”) und dann das Tool wie folgt aufrufen – je nachdem, ob RAW-Daten oder die JPGs extrahiert werden sollen:
    lfpsplitter IMG_0001.lfp
    lfpsplitter IMG_0001-stk.lfp
  • lfptools extrahiert daraufhin Metadaten, Depth Lookup Tabellen und (1) die RAW-Bilddatei (wenn aus der vollständigen .lfp-Datei) bzw. (2) die einzelnen Fokusebenen als JPG (wenn aus der -stk.lfp-Datei).

lfptools in der Windows Eingabeaufforderung ausführen

lfptools Ausgabe: Bildstapel, RAW-Datei, Metadaten und Depth Lookup Tabellen

Die Raw-Bilddatei (IMG_0001_imageRef0.raw) kann (gemäß Patel’s Artikel) mithilfe des raw2tiff Befehls in ein schwarz-weiß Tiff-Bild konvertiert werden:
raw2tiff -w 3280 -l 3280 -d shortt IMG_0004_imageRef0.raw output.tif

Wir sind gespannt auf eure Rückmeldungen!

Be Sociable, Share!

Kommentar verfassen