[Lua] automatische Belichtungsreihe

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

automatische Belichtungsreihe

Beitragvon msl » 11.09.2009, 22:29

In diesem Thread im internationalen Forum gab es einen interessanten Ansatz für eine automatische Belichtungsreihe.

Dieses Skript ist neben der skriptlosen Variante die einfachste Möglichkeit, eine Tv-Belichtungsreihe zu erstellen. Man muss sich nicht darum kümmern: Wieviel Bilder brauche ich? Soll ich +, - oder alternierend einstellen? Einfach das Skript laden und mit den voreingestellten Werten arbeiten. In einer Log-Datei werden notwendige Angaben für die weitere Verarbeitung gespeichert, so auch die Dateinamen, damit man die Reihe später auch wieder findet.;)

Die nachfolgenden Erklärungen sind nur für die gedacht, die etwas genauer wissen wollen, wie das Skript funktioniert.

Ermöglicht wird das durch eine Histogramm-Auswertung. Dazu benutzen wir den Befehle shot_histo_enable und get_histo_range. Mit shot_histo_enable wird eine Funktion aktiviert, die ein einfaches Histogramm aus dem RAW-Puffer erzeugt. Dieses kann dann mit get_histo_range ausgewertet werden. Der Befehl gibt in einem bestimmbaren Histogrammbereich einen prozentualen Wert der Pixelanzahl zurück.

Die hier im Skript verwendeten Werte für Histogrammbereich und Schwellwert sind Testwerte. Da könnte es evt. Optimierungspotential geben.

Mit den vorgegebenen Parametern sollte das Skript problemlos eine Belichtungsreihe mit ca. 6 - 10 Bildern erzeugen.

Das Skript setzt standardmäßig den AF-Lock und erzeugt eine Log-Datei, in der zu jedem Bild Dateiname, prozentualer Histogrammwert für den Bereich sowie fototechnische Werte geschrieben werden. Die Log-Datei (a_br<n>.log) befindet sich im CHDK-Unterordner LOGS. Bestehende Log-Dateien werden durch Nummerierung nicht überschrieben. In den Parametern kann die Messmethode bestimmt werden. Als Vorgabe wird mittenbetont eingemessen.

Sollte das Skript wegen eines zu hohen Schwellwertes nicht selbständig enden, kann es jederzeit durch den Auslöser abgebrochen werden. Dabei werden alle notwendigen Dinge durch die Restore-Funktion zurückgesetzt und beendet.

Parameter-Einstellungen:

Ev-Schritte in 1/3 Schritten -> Bestimmung der Schrittweite, Vorgabe ist 3

Limit hell (29-1023) -> Bestimmung des Limits für die Überbelichtung im Histogramm

Limit dunkel (29-1023) -> Bestimmung des Limits für die Unterbelichtung im Histogramm

Startverzögerung in s -> Start-Countdown

Messung(0=mf,1=spot,2=cnt) -> Messmethode 0=Mehrfeldmessung, 1=Spotmessung, 2=mittenbetonte Messung

Schwellwert hell (0-100) -> prozentualer Schwellwert hell, der im Histogramm-Bereich erreicht werden muss.

Schwellwert dunkel (0-100) -> prozentualer Schwellwert dunkel, der im Histogramm-Bereich erreicht werden muss.

Edit 25.07.2010

Neuere Kameras haben eine geänderte Ordnerstruktur im Unterordner DCIM (Datumsangabe). Das hat zur Folge, dass der bisherige Suchalgorithmus für Bilder nicht funktioniert. Das betrifft folgende Kameras:

A495, G11, G12, S90, S95, SX20, SX30, SX120, SX130, SX220, Ixus120

Für diese Kameras sollte das Skript br_h_new.lua verwendet werden.

Edit 10.08.2011

Das Auslesen der Dateinamen ist eine speicherintensive Prozedur, mit der viele (neuere) Kameras ihre Probleme haben. Deshalb wurde zusätzlich eine Skriptvariante (br_easy.lua), die auf das Auslesen der Dateinamen verzichtet, hinzugefügt.

Edit 24.10.2012

Die neue Version br_easy2.lua kann ohne speicherintensive Prozeduren die Dateinamen auslesen. Somit kann die Logdatei problemlos mit jeder Kamera geschrieben werden. Außerdem wurden die Skriptparameter an die aktuellen Möglichkeiten angepasst. Das Skript funktioniert mit der CHDK-Version 1.2 ab Revision 2225.
Dateianhänge
br_easy2.lua
neue Version für alle Kameras (24.10.2012)
(3.84 KiB) 772-mal heruntergeladen
br_easy.lua
Version ohne speicherintensives Auslesen der Dateinamen
(3.72 KiB) 2012-mal heruntergeladen
br_histo.lua
automtisches Bracketing
(4.88 KiB) 1759-mal heruntergeladen
br_h_new.lua
Version für neuere Kameras
(4.89 KiB) 947-mal heruntergeladen
Zuletzt geändert von msl am 24.10.2012, 20:09, insgesamt 14-mal geändert.
Grund: weitere vereinfachte Skriptvariante hinzugefügt
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Interessante Befehlsverwendung

Beitragvon Sinter » 14.09.2009, 12:07

Wow,

das klingt verlockend. Vor allem auch die Histogrammanalyse.

Mal sehen ob ich die Analyse im Skript einigermaßen nachvollziehen kann. Damit könnte vielleicht auch so manche andere Idee realisierbarer werden.

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon derandi » 14.09.2009, 16:40

Toll. Bin gespannt auf erste Ergebnisse bzw. Erfahrungen. Wieviele Einzelbilder braucht man denn überhaupt? Sollten nicht zwei oder drei ausreichen? An zehn Bildern wird sich qtpfsgui (oder wie das Programm genau heißt) vermutlich dumm und dusselig rechnen.
A720
derandi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 35
Registriert: 18.05.2009, 19:31
Wohnort: Niedersachsen

Beitragvon Thanatux » 14.09.2009, 17:23

Hi!

@derandi:

Im Prinzip würden auch zwei Aufnahmen reichen, um den Dynamikumfang zu erweitern - eben eine für die dunkleren Bereiche, eine für die helleren. Will man aber den gesamten Dynamikumfang ablichten, braucht man u.U. eine ganze Menge mehr Belichtungen. Wie viele, daß hängt von den jeweiligen Umständen ab.

Bisher ermittelte ich per Spotmessung und fest eingestellter Blende die Belichtungszeiten der jeweils hellsten und dunkelsten Bereiche. Dann errechnete ich mir im Kopf, wieviele Bilder ich für 2EV Schritte benötigte und machte dementsprechend viele Aufnahmen.

Sagen wir mal, ich kam für die Tiefen auf 1/2 Sekunde, für die Lichter auf 1/500. +1EV bedeutet, halbe Belichtungszeit, +2EV wäre dann ein Viertel. D.h. bei obigem Bereich und 2EV Abstand folgendes:

1/2s, 1/8s, 1/30s, 1/125s, 1/500s - also 5 Aufnahmen, jeweils 2EV auseinander.

Wenn's eilig ist, reichen aber für viele Szenen (v.a. Landschaft am Tag, Berge - Himmel) 3 Aufnahmen mit 2EV Abstand. Vielleicht hat man dann nicht alles drauf, aber gut aussehen wird's allemal.

Die besten Ergebnisse erziehlt man übrigens, wenn man in RAW fotografiert. Einzig das Filtern des Sensorrauschens wird dann etwas komplexer. Übrigens: Man kann auch aus einem einzigen RAW (z.B. ein Actionfoto) ein HDR machen. Der Dynamikumfang ist zwar deutlich geringer, als bei z.B. 3 Aufnahmen, aber immer noch größer als bei einem einzigen JPG.

Das Script hier hab' ich mal kurz ausprobiert. Es macht mit den Standardeinstellungen anscheinend mehr Aufnahmen, als nötig, funktioniert aber hervorragend. Großes Lob! :-) Es erleichtert die Arbeit erheblich, wenn man es mal hektisch wird und keine Zeit zum Messen bleibt.

Schöne Grüße
Michael

Canon PowerShot A590 IS - CHDK 0.9.8-869 (FW 101b)
SW: Linux, Gimp 2.6.6 + diverse Plugins, NoiseNinja 2 (wine)
Benutzeravatar
Thanatux
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 64
Registriert: 11.07.2009, 15:48

Beitragvon Gernot » 15.09.2009, 08:50

Hallo!

In der Tat ein verlockendes Skript, aber leider bekomme ich es nicht zum Laufen. Habe gestern vorher die neuste CHDK-Version auf die Speicherkarte geschoben (DISKBOOT.BIN und PS.FIR aktualisiert, reicht doch, oder nicht?).
Nach dem Starten des Skripts mit den Standardwerten steht in der Anzeige:

:20: attemt to index glo
bal 'fo' (a nil value)
PRESS SHUTTER TO CLOSE

Das war's. Ein Foto wird nicht aufgenommen. Hat jemand eine Idee, was die Ursache sein kann? Daß der Befehl set_aflock bei mir nicht funktioniert, hatte ich ja früher schon einmal gemeldet. Der kommt ja auch in diesem Skript vor. Ich könnte ihn ja löschen und manuell scharf stellen. Oder läuft das Skript auch mit automatischem Focus, nur vielleicht langsamer?

Gernot
für CHDK: Canon Powershot A530, A1000IS und SX 130IS mit CHDK_DE 1.3.0 Revision: 3583
Gernot
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 55
Registriert: 14.08.2008, 07:32
Wohnort: Holzminden
Kamera(s): Powershot A530, A1000IS, SX 130IS

Beitragvon msl » 15.09.2009, 10:51

Hallo Gernot,

der Fehler wundert mich jetzt schon etwas. Der kann erstmal nicht im Zusammenhang mit set_aflock stehen. Das Problem wäre erst nach dem ersten Foto entstanden. Das läßt vermuten, dass bei der A530 nicht alles so funktioniert wie es sollte.

set_aflock (2x) kannst Du problemlos im Skript löschen. Es sollte trotzdem funktionieren, nur eben ohne aflock. Probier es einfach noch einmal. Vielleicht hat sich da ein Kopierfehler eingeschlichen.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon Gernot » 15.09.2009, 10:57

Hallo, msl!

Werde ich heute abend ausprobieren und dann berichten.
Kopierfehler kann ich mir nicht vorstellen, habe ja das Skript komplett heruntergeladen und nicht den Text kopiert und in eine neue Datei eingefügt. Bei der A530 scheint in der Tat nicht alles zu funktionieren, wie es sollte, siehe das Problem mit set_aflock.

Gruß

Gernot
für CHDK: Canon Powershot A530, A1000IS und SX 130IS mit CHDK_DE 1.3.0 Revision: 3583
Gernot
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 55
Registriert: 14.08.2008, 07:32
Wohnort: Holzminden
Kamera(s): Powershot A530, A1000IS, SX 130IS

Beitragvon pterozaurus » 15.09.2009, 12:00

Hallo zusammen,
das ist mal wunderbar, skript heruntergeladen,und mit meiner IXUS55 getestet...... läuft problemlos durch.
Jetzt werde ich mich mal mit den Einstellungen beschäftigen.

Grüße
Stephan
SX220 HS; Fw. 101b; CHDK_DE 1.2.8 Rev. 2099
Ixus55:chdk ixus55_sd450-100c-1.0.0-DE
Benutzeravatar
pterozaurus
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 65
Bilder: 0
Registriert: 18.06.2008, 10:41
Kamera(s): SX220 HS
Ixus 55

Beitragvon derandi » 15.09.2009, 12:50

Danke für die Informationen!

Thanatux hat geschrieben:(...)Die besten Ergebnisse erziehlt man übrigens, wenn man in RAW fotografiert. Einzig das Filtern des Sensorrauschens wird dann etwas komplexer.(..)


Habe ich probiert, aber qtpfsgui frißt leider meine CRW-Dateien nicht. Es stürzt sofort ab, wenn ich eine auswähle. Außerdem sind 10 bit gegenüber 8 auch vielleicht nicht soviel mehr.
A720
derandi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 35
Registriert: 18.05.2009, 19:31
Wohnort: Niedersachsen

Beitragvon Thanatux » 15.09.2009, 14:39

derandi hat geschrieben:Danke für die Informationen!

Thanatux hat geschrieben:(...)Die besten Ergebnisse erziehlt man übrigens, wenn man in RAW fotografiert. Einzig das Filtern des Sensorrauschens wird dann etwas komplexer.(..)


Habe ich probiert, aber qtpfsgui frißt leider meine CRW-Dateien nicht. Es stürzt sofort ab, wenn ich eine auswähle.


Probier's mit DNG. Bei mir funktioniert das gut in qtpfsgui.

derandi hat geschrieben:Außerdem sind 10 bit gegenüber 8 auch vielleicht nicht soviel mehr.


Es steckt wirklich nur minimal mehr an Tiefen und Lichtern drin - zumindest bei meiner A590. Ich hab' das mal mit einer geliehenen 450D probiert: Die geht wesentlich weiter mit der Dynamik, als später in den Jpegs zu finden ist. Vielleicht fotografieren deshalb so viele SLR-Besitzer in RAW.

Allerdings bedeuten 10 Bit 1024 Helligkeitsabstufungen pro Farbkanal anstatt der üblichen 256 bei 8 Bit. Auch wenn mancher argumentieren möchte, daß die letzten 2 Bit bei den Kompakten doch eh' nur Rauschen sind - die HDRs werden besser. Dazu kommt, daß noch keine Verfälschungen und Nachbearbeitungen in der Kamera erfolgt sind, die das HDR später ziemlich beeinflussen können.

HDRs aus Jpegs müssen deswegen aber nicht schlecht sein. Die Bildfolge ist höher, so daß Bewegung weniger eine Rolle spielt und das Rauschen ist zum Großteil schon herausgefiltert worden. Ich hab' die Erfahrung gemacht, daß man manchmal bei Jpegs für HDR lieber nur 1EV Abstand zwischen den Bilder haben sollte - meistens bei größflächigeren Helligkeitsverläufen.

Schöne Grüße
Thanatux

Canon PowerShot A590 IS - CHDK 0.9.8-869 (FW 101b)
SW: Linux, Gimp 2.6.6 + diverse Plugins, NoiseNinja 2 (wine)
Benutzeravatar
Thanatux
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 64
Registriert: 11.07.2009, 15:48

Beitragvon Lipo » 15.09.2009, 17:54

Also bei mir läuft es auf der 570er und der 610er, macht aber pro durchlauf 12 Aufnahmen, ist das richtig so ?

Gruss
Lipo
1. A570 IS gegrillt # 2. A610-100d/1.1.0-DE-full_rev_815 # 3. A570 CHDK a570/101a-0.9.8-787 # 4. SX220 1.01b-sx220hs/101b-1.1.0-full_BETA_rev_822
Benutzeravatar
Lipo
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 261
Registriert: 04.07.2008, 16:10
Wohnort: Thüringen / Jena

Beitragvon msl » 15.09.2009, 19:03

Hallo,

Die Vorgaben sind so gehalten, dass das Skript eher zu viel als zu wenig Bilder erzeugt.

Du hast 2 Möglichkeiten, dies zu verändern:

1. Die Ev-Schrittweite (Vorgabe 1 Ev) erhöhen.

2. Die Schwellwerte (95 bzw. 85) zu verringern. Das macht Sinn, wenn es zu viele extrem dunkle/helle Bilder ergibt, die man nicht benötigt. Aber Achtung! max. in 5er-Schritten verringern.

Speziell für die A610 würde mich interessieren, ob die Dateinamen in der Log-Datei mit der richtigen Reihenfolge geschrieben werden.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Leider funktioniert das Skript nicht auf der A530.

Beitragvon Gernot » 16.09.2009, 07:15

Hallo!

Ich habe jetzt die beiden set_aflock-Befehle herausgenommen. Leider ist das Verhalten das gleiche (siehe mein Beitrag von gestern). Vielleicht ist ja die CHDK-Version für die A530 fehlerbehaftet. Aber daß manche Dinge nicht funktionieren, hatte ich auch schon mit älteren Versionen von CHDK. Jetzt, wie erwähnt, vorher die neuste Version aufgespielt.
Schade! :(

Gruß

Gernot
für CHDK: Canon Powershot A530, A1000IS und SX 130IS mit CHDK_DE 1.3.0 Revision: 3583
Gernot
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 55
Registriert: 14.08.2008, 07:32
Wohnort: Holzminden
Kamera(s): Powershot A530, A1000IS, SX 130IS

Beitragvon msl » 18.09.2009, 13:08

Mini-Update

Kennzeichnung der Bilder in der Logdatei, damit besser zu erkennen ist, was bei welchem Bild gemacht wurde.

Leichte Verringerung der Vorgaben für die Schwellwerte, damit weniger Bilder bei den Standard-Einstellungen gemacht werden.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon gehtnix » 18.09.2009, 13:31

msl hat geschrieben:Kennzeichnung der Bilder in der Logdatei, damit besser zu erkennen ist, was bei welchem Bild gemacht wurde.
Wäre doch machbar das jeweils allererste Foto mit kleinster Auflösung und Feinheit zu abzuspeichern. Im Browser sieht man sofort an der Größe dass es ab hier losgeht.

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Nächste

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste