Script um Bracketing-Ergebnisse auszulesen

Wenn Du Probleme hast, jene Bilder zu identifizieren, die mit Fokus-Bracketing oder Fokus-Stacking gemacht wurden bzw. in der Kamera gestacked wurden, habe ich hier ein kleines Python-Script erstellt, das Dir hoffentlich helfen kann. Du kannst damit auch Ergebnisse anderer Bracketing-Modi auslesen.

Python habe ich gewählt, weil es prinzipiell auf „jedem“ Betriebssystem funktionieren sollte, getestet habe ich das Skript aber nur auf macOS. Dass es auf Windows läuft, wurde mir aber bestätigt.

Ausgangspunkt war das Interesse am Parameter „Fokusunterschied“ beim Fokus-Bracketing bzw. -Stacking. Mehr dazu siehe hier: https://smile.pics/schrittweiten

Vorbereitung

Bevor Du das Script verwenden kannst, musst Du:

  1. Exiftool downloaden und installieren (oder installiert haben): https://exiftool.org
  2. Python3 downloaden und installieren (oder installiert haben): https://www.python.org/downloads/
  3. Dieses Python-Script downloaden und anschließend de-komprimieren („entzippen“)

Anwendung

Hier beschreibe ich die Anwendung des Python-Scripts am Mac. Für Windows sollte es klappen, wenn Du das Script in das Exiftool-Verzeichnis legst und von dort startest.

Zwei getätigte Annahmen

Ich gehe hier im Beispiel davon aus, dass Du das Pythons-Skript von oben, es heißt exiftool_skript_2.py, in Deinem Downloads-Ordner gespeichert hast.

Außerdem gehe ich noch davon aus, dass Du die Dateinamen Deiner Fotodateien so gewählt hast, dass sie aufgrund des Namens chronologisch geordnet werden können. Ich beschreibe das in meinem Workflow hier: https://www.smile.pics/workflow/#schritt7 (auch warum ich das empfehle).

Schritt-für-Schritt Anwendung (am Mac)

Schritt 1

Öffne die Terminal.app, dazu klicke ⌘+Leertaste damit die Spotlight-Suche erscheint

Gib ein Terminal und klicke auf den Vorschlag sobald Terminal.app vorgeschlagen wird

Jetzt öffnet sich die Terminal.app in einem eigenen Fenster:

Schritt 2

Wechsle in das Verzeichnis, in das Du das Script abgelegt hast. Im Beispiel liegt das Script im Verzeichnis Downloads. Gib also ein cd downloads

Bestätige die Eingabe mit Enter um ins Verzeichnis zu kommen:

Schritt 3

Jetzt starte das heruntergeladene Python-Script durch Eingabe von python3 exiftool_script_2.py

Bestätige die Eingabe mit Enter

Schritt 4

Das Script fordert Dich jetzt auf, das Verzeichnis auszuwählen, das Du analysieren möchtest. Das wird Dir einerseits im Terminal-Fenster angezeigt…

…und gleichzeitig öffnet sich ein weiteres Fenster, wo Du das Verzeichnis tatsächlich auswählst:

Wir wählen im Beispiel dieses Verzeichnis:

Schritt 5

Das Script arbeitet jetzt das Verzeichnis ab. Wenn es fertig ist, bekommst Du folgende Anzeige im Terminal

Hier wird Dir auch angegeben, wie die erstellte Datei heißt und wo Du sie findest

Schritt 6

Die Datei kannst Du jetzt z.B. im Finder öffnen. Oder, Du beginnst gleich im Terminal mit der Analyse der Ergebnisse. Dafür markierst Du Dir zunächst die Datei und Ihren Pfad:

Diesen Pfad kopierst Du Dir dann mit ⌘+c. Jetzt gibts Du ein less und nach einem Abstand ⌘+v (um den kopierten Pfad einzufügen)

Diese Eingabe bestätigst Du mit Enter um im Programm less die Datei zu öffnen. Das sieht dann so aus:

In less kannst Du Dir jetzt z.B. die Zeichenfolge „Focus-stacked“ suchen (Groß-/Kleinschreibung beachten!) indem Du eingibst /Focus-stacked:

Durch Enter kommst Du zum ersten Eintrag von „Focus-stacked“:

Scrolle nach oben, um den Dateinamen lesen zu können:

Durch einfaches Drücken von n kommst Du zum nächsten Fund

Das zweite gefundene Bild wurde offensichtlich aus 15 Bilder zusammengesetzt, das erste aus 10.

Um less zu beenden drücke einfach q. Du bist dann wieder im Terminal-Fenster

Die oben beschriebenen Schritte werden hier auch in einem kurzen Video gezeigt:

Script mit Excel verwenden

Wenn Du das Script im Zusammenhang mit MS Excel verwenden möchte, dann gibt es zwei Möglichkeiten:

  1. Du verwendest ein anderes Script, das Dir gleich eine CSV-Datei liefert: Python-Script-runterladen. Das Script funktioniert prinzipiell gleich wie das oben beschriebene (heißt allerdings exiftool_script_4.py und muss auch unter diesem Namen aufgerufen werden – vorher ent-zippen nicht vergessen) , nur das Ergebnis sieht anders aus. Die CSV-Datei, die vom Script erstellt wird, lädst Du dann unter „Daten“ – „Daten abrufen“ (Power Query) nach Excel.
  2. Du wandelst den Output des Original-Scripts einfach in Excel um: Video.

Schneller als das Python-Script ist eine Schnellaktion (geht nur für Mac-User)

Dafür brauchst Du kein Python, es genügt ein installiertes Exiftool. Den Workflow kannst Du Dir hier runterladen. Unter https://smile.pics/exiftool#exiftool-bracketing beschreibe ich, wie man die Schnellaktion selbst erstellen kann. Die Bedeutung der Parameter im Exiftool werden z.T. hier weiter unten erklärt.

Das Script

Das gesamte Python-Script

Das (Original-)Script, das Du Dir runterladen kannst, sieht insgesamt so aus:

Anpassen, welche Exif-Parameter angezeigt werden

Um anzupassen, welche Parameter durch das Exiftool ausgelesen werden sollen, kannst Du Dir die Zeilen 29 bis 38 nach Bedarf abändern.

Welche Tags (so werden die Parameter im Exiftool genannt) Du verwenden kannst, findest Du hier: https://exiftool.org/TagNames/.

Vor den Parametern wird immer der Name der ausgelesenen Datei angegeben. Angezeigt werden in den Ergebnissen pro Datei im ausgewählten Verzeichnis:

Zeile 1: Dateiname, vergeben so, wie in meinem Workflow erklärt, siehe auch https://smile. pics/workflow/#schritt7

Zeile 2 (Scriptzeile 29): Modellnamen der Kamera, ist ein Standard-Exif und heißt dort model

Zeile 3 (Scriptzeile 30): Modellnamen des Objektivs, ist ein Standard-Exif und heißt dort lensmodel

Zeile 4 8Scriptzeile 31): Brennweite, ist ein Standard-Exif und heißt dort focallength. Sowohl bei Zoomobjektiven (mehrere leicht unterschiedliche Brennweiten, werden gleich angezeigt, die Brennweite verändert sich nicht fließend) als auch bei Makroobjektiven (durch die Brennweitenverkürzung) ist dieser Wert nicht immer ganz korrekt.

Zeile 5 (Scriptzeile 32): Blendenwert, ist ein Standard-Exif und heißt dort FNumber

Zeile 6 (Scriptzeile 33): Fokusdistanz, ist ein MakerNote-Exif (d.h. ein Hersteller-spezifischer Eintrag) und heißt dort focusdistance. Dieser Wert ist nicht exakt, eher eine Indikation für die tatsächliche Entfernung.

Zeile 7 (Scriptzeile 34): Fokusunterschied, ist ein MakerNote-Exif und heißt dort focusbracketstepsize. Ist bei Focus-Bracketing Aufnahmen interessant.

Zeile 8 (Scriptzeile 35): Schärfentiefe, ist ein Composite-Exif (d.h. es wird von Exiftool berechnet) und heißt dort DOF. Dieser Wert ist nur eine Indikation für die tatsächliche Schärfentiefe, weil die Parameter die für die Berechnung herangezogen werden, nicht exakt sind, z.B. die Fokusdistanz.

Zeile 9 (Scriptzeile 36): Auslösemodus, ist ein MakerNote-Exif und heißt dort drivemode. Ist für die Auswertung der Bracketing-Modi ein sehr wichtiger Wert.

Zeile 10 (Scriptzeile 37): Ist es eine in der Kamera zusammengesetzte Aufnahme, ist ein MakerNote-Exif und heißt dort stackedimage.

Zeile 11 (Scriptzeile 38): Artfilter, ist ein MakerNote-Exif und heißt dort artfilter. Es wird ein Bild gemacht und im Anschluss daran verschieden Artfilter auf das Ursprungsbild angewandt und jeweils einzeln abgespeichert.

RAW-Dateien anderer Kameramarken analysieren

Dafür musst Du die Scriptzeile 43 um die Endungen der Dateinamen der gewünschten Kameramarke ergänzen. Derzeit werden nur die Endungen verwendet, die für Nutzer von Olympus/OM-System Kameras typisch sind. Du musst also nach ...'-orf', '-ori'... zusätzlich , '-cr2', '-cr3', '-raf', '-dng', '-arw', '-nef' (den ersten Beistrich bitte nicht vergessen/übersehen) als weitere Dateiendungen anführen für z.B. Canon, Fuji, Leica, Sony oder Nikon Kameras.

Was man damit identifizieren kann

Man kann neben den Bracketing-Einstellungen auch noch andere Einstellungen einfach aus den Exif-Werten auslesen.

High Resolution Bilder – hochauflösende Bilder

Natürlich kann man hochauflösende Bilder auch einfach anhand der Pixel bzw. der Dateigröße identifizieren, in den Exifs gibt es folgende zusätzliche Hinweise:

Wenn man in JPEG und ORF aufnimmt, ergibt es drei Bilder mit gleicher Frame-Nummer (hier 0167): Das JPEG, das ORF (beide sind hochauflösend) und ein ORI das dem ersten aufgenommenen ORF entspricht. Das hochauflösende Bild wird ja aus mehreren Einzelbildern zusammengesetzt. Bei den ersten beiden Bildern, dem JPEG und dem ORF, kann man bei Stacked Image: Tripod high resolution lesen.

Bei HHHR (hand held high resolution), also hochauflösenden Bildern aus der Hand aufgenommen, sieht das Ergebnis ähnlich aus:

Der entscheidende Hinweis hier lautet Stacked Image: Hand-held high Revolution (11 12). Warum genau der Klammerausdruck (11 12) angezeigt wird, weiß ich nicht.

ND-Filter Simulation

Sowohl im JPEG als auch im ORF findet man den Hinweis Stacked Image: ND8 (3EV). Man würde bei anderen Filterstärken natürlich andere Zahlenwerte finden.

GND-Filter Simulation

In der Exiftool Version 12.92 werden die GND-FIlter Einstellungen noch nicht sauber übersetzt, man kann aber zumindest eindeutig identifizieren, dass die GND-Simulation eingesetzt wurde durch den Hinweis Stacked Image: Unknown (13 8). Detailliertere Einstellungen kann man damit aber nicht erkennen – im Moment.

Aufnahmen mit Focus Bracketing bzw. für Focus Stacking

Aufnahmen, die mit Focus Bracketing gemacht wurden und Aufnahmen, die für ein Focus Stacking gemacht wurden, schauen hinsichtlich der Exif-Werte im wesentlichen gleich aus.

Der Hinweis, dass es sich um derartige Bilder handelt findet sich unter Drive Mode: Focus Bracketing, Shot #; Electronic Shutter, wobei # für die Nummer des Bildes in diesem Modus steht. Wenn diese Nummer höher ist als 15, dann weiß man (zumindest für die aktuellen Firmware-Version der OM1.2), dass es sich um Focus-Bracketing handelt, da Stacking derzeit auf maximal 15 Bilder beschränkt ist.

Focus-gestackete Bilder

Ein Bild, das in der Kamera Focus-gestacket wurde, findet man doch den Hinweis Stacked Image: Focus-stacked (# images), wobei # die Anzahl der Einzelbilder angibt, aus denen das Bild zusammengesetzt wurde. Das Ergebnis ist immer ein JPEG, die Quellbilder können entweder JPEG oder ORF sein.

HDR Aufnahmen

Die Kameras haben verschiedene Methoden, das Erstellen von High Dynamic Range Fotos zu unterstützen. Es gibt einerseits die Möglichkeiten in der Kamera derartige Bilder verrechnen zu lassen, und andererseits Belichtungsserien zu erstellen, um aus den Einzelbildern am Computer mit geeigneter Software derartige Bilder zu machen.

in Kamera HDR

Der Hinweis kann entweder lauten Stacked Image: HDR1 oder (je nach gewähltem Modus) Stacked Image: HDR2 und findet sich nur im JPEG, denn nur das ist verrechnet.

HDR-(Belichtungs-)Bracketing-Aufnahmen für die Nachbearbeitung am Computer

Für diesen Modus gibt es JPEG und ORF Bilder. Man erkennt diese Bilder an Hinweisen wie Drive Mode: AE Auto Bracketing, Shot #; Electronic shutter, wobei # die Nummer des Bildes aus der Serie angibt.

AE (Belichtungs-) Bracketing

Technisch ist das AE (Auto Exposure) Bracketing sehr ähnlich dem HDR-Modus für die Nachbearbeitung am Computer.

Auch für diesen Modus gibt es JPEG und ORF Aufnahmen. Der ausschlaggebende Hinweis steht in Drive Mode: AE Bracketing, Shot #; Electronic shutter, wobei # der Nummer des Bildes aus der Serie entspricht.

Weitere Bracketing-Modi wie ISO-Bracketing, WB-Bracketing,…

Die Hinweise lauten dann z.B. Drive Mode: ISO Bracketing, Shot #; Electronic shutter, oder Drive Mode: WB Bracketing, Shot #; Electronic shutter usw.

Art Filter Bracketing

Beim Art Filter Bracketing wird zunächst ein JPEG und/oder ORF Bild aufgenommen und dann auf dieses Bild die vorausgewählten Art Filter angewendet. Das kann je nach Anzahl der ausgewählten Filter eine gewisse Zeit lang dauern, bis die Kamera wieder bereit ist. Das stellt sich dann z.B. so dar:

Oben die beiden Originalbilder und unten das erste Bild aus der Art Filter Bracketing Serie, das nur als JPEG vorliegt. Unter Art Filter: Pop Art; 1280; 0; 0 wird der hier zum Einsatz gebrachte Filter beschrieben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert