ich bin gerade dabei, ein neues Feater zu implementieren:
Bei meinen Versuchen mit Belichtungsreihen bin ich auf PFScalibration zur Erzeugung von HDR-Files gestoßen. PFScalibration gehört zu den PFS-Tools, ist für Windows(MinGW), Linux und Mac als Open Source verfügbar, und hat bei mir bisher die besten Ergebnisse erzielt.
Für dieses PFScalibration wird normalerweise mit "jpeg2hdrgen" ein Script-File erzeugt, welches die Belichtungsinformationen aus den JPEGs extrahiert. Bei CRW muss man das Script manuell erstellen.
Das hat mich auf die Idee gebracht, dieses Script direkt in der Kamera zu erzeugen. Die dafür nötigen Informationen stehen ja zur Verfügung.
Hier ein Beispiel (CRW_7664.HDG):
- Code: Alles auswählen
CRW_7664.CRW 12.987 2.7 100 0
CRW_7665.CRW 5.98802 2.7 100 0
CRW_7666.CRW 25 2.7 100 0
CRW_7667.CRW 3.33333 2.7 100 0
CRW_7668.CRW 50 2.7 100 0
CRW_7669.CRW 1.66667 2.7 100 0
CRW_7670.CRW 100 2.7 100 0
Aufbau: image_filename inverse_of_exposure_time_in_seconds aperture_size iso_speed 0
Der Name der Scripdatei wird von der ersten Aufnahme der Reihe übernommen: CRW_7664.HDG
Mit folgendem Shell-Befehl (Linux oder Windows-MinGW) wird dann automatisch ein HDR im openEXR-Format erzeugt:
- Code: Alles auswählen
pfsinhdrgen CRW_7664.HDG | pfshdrcalibrate -v -b16 | pfsoutexr CRW_7664.HDR.EXR
oder mit einem Shell-Script ...
- Code: Alles auswählen
for h in *.HDR
do fsinhdrgen $h | pfshdrcalibrate -v -b16 | pfsoutexr ${h/.HDG/_HDR.EXR}
done
... werden automatisch aus ALLEN Belichtungsreihen die HDR-Files erzeugt.
fügt man dann z.B. noch ...
- Code: Alles auswählen
pfsin ${h/.HDG/_HDR.EXR} | pfstmo_mantiuk06 | pfsout ${h/.HDG/_LDR.JPG}
... ein, so wird auch gleich zu jedem HDR per Tonemapping ein JPG erzeugt.
Wenn die Sache läuft, dann werde ich das Script noch verfeinern, so dass z.B. auch automatisches Ausrichten möglich ist, aber zuvor kämfe ich noch mit folgendem Problem:
Da ich noch nicht allzu erfahren mit dem CHDK-Code bin, bin ich bezüglich der Funktionen zur Rückgabe von Av und Tv etwas verwirrt. Welche Funktion liefert mir im Bracket-Mode die tatsechlich verwendeten Tv- und Av-Werte? Mit ISO war es einfach, da gibt es eine Funktion "shooting_get_iso_real()". Leider gibt's keine shooting_get_tv_real()"!
Für Tv benötige ich dem Wert dezimal in Sekunden als float .
Für Av die Blende ebenfalls als float.
Vielen Dank für Eure Hilfe!
Randolf