[Lua] Fotos bei schwachem Licht (Für 10-Bit-CHDK-Cams)

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

Fotos bei schwachem Licht (Für 10-Bit-CHDK-Cams)

Beitragvon Sinter » 05.03.2010, 12:58

Hallo,

um bei Freihandaufnahmen bei schwachem Licht die Verwackelungsgefahr zu händeln, stelle ich probehalber ein Skript zur Verfügung, welches die Verwendung meiner ISOBoost-Kurven automatisiert. Falls keine Probleme auftreten wird das Skript und eine angepasste Tonwertkurvenstruktur in mein nächstes Update von SintersCurvePackage aufgenommen.

Alle 5 Curves müssen in das CURVES-Hauptverzeichnis, das Skript muss wie üblich in das CHDK-Skriptverzeichnis, und in CHDK muss im Tonwertkurvenmenü die Curve STD.CVF geladen werden.

Das Skript funktioniert aufgrund der notwendigen Tonwertkurven ausschließlich bei CHDK-10-Bit-Raw-Kameras!


Zum Skript:

LowLight.lua by Sinter, 5. März 2010, Version 0.1

Anwendungsfelder: Verwackelungsschutz bei Freihandaufnahmen selbst bei schwachem Licht,
Available-Light-Fotografie,
Blitzvermeidung bei schwächeren Lichtverhältnissen,
auch für Tele-Aufnahmen konzipiert (da das Skript die Brennweite berücksichtigt).

mittels automatischer Bedarfsanalyse sowie (im Bedarfsfall) automatischer Auswahl und Anwendung der 4 ISOBoost-Kurven bei automatischer Wahrung von möglichst kurzen Verschlusszeiten.

Skript zur Beibehaltung möglichst kurzer Verschlusszeiten (Ziel-Limit = abhängig von Brennweite) auch bei schwachem Licht mittels automatischer Auswahl einer möglichst passenden ISOBoost-Kurve und entsprechender Belichtungszeitverkürzung um bis zu 4 EV.

Das Skript misst ob aufgrund einer zu langen Belichtungszeit eine Verwackelung droht und verkürzt im Bedarfsfall ganz automatisch die Belichtungszeit unter Zuhilfenahme meiner ISOBoost-Kurven um bis zu 4 EV. Dies ermöglicht Aufnahmen aus der Hand (bei ursprgl. Ziel = 1/40 Sekunde) sofern sie ursprünglich bis zu 0,4 Sekunden Belichtungszeit benötigen würden. (Erst ursprüngliche Belichtungszeiten von länger als 0,4 Sekunden werden in Belichtungszeiten von länger als 1/40 Sekunde umgewandelt, wobei dann die Gefahr von Verwackelungen deutlich zunimmt.) Für Kameras mit <=30mm-Weitwinkel habe ich auch noch einen 1/30-Sekunden-Zielwert berücksichtig/eingefügt.

Die BelichtungszeitZielwerte (=minimapex) werden anhand der jeweils aktuellen Brennweite festgelegt. Es können maximal 4 EV gewonnen werden. BelichtungszeitZielwerte, welche eine grössere Korrektur als die verfügbaren 4 EV erfordern würden, werden nicht vollständig realisiert (sondern dann nur die Maximalkorrektur von 4 EV ausgeführt) und es erfolgt eine Warnmeldung, dass während der Aufnahme die Wackelgrenze überschritten war, sowie eine Aufforderung, um wie viele Stufen die ISO-Einstellung möglichst erhöht werden soll. (Präzision dieser Prognose noch nicht geklärt. Theoretisch präzise, aber in der Praxis scheint ISO-Prognose unserer Cams etwas tückisch, nach erstens Tests vor allem bei der Prognose im Telebereich.)

##########################

!!! ZWINGENDE VORAUSSETZUNGEN !!!:
Das Skript funktioniert ausschließlich mit CHDK-10-Bit-RAW-Kameras und setzt eine in CHDK geladene und unmittelbar (!) im CURVES-Ordner befindliche beliebige STD.CVF-Tonwertkurve voraus, sowie an gleicher Stelle die vier ISOBoost-Kurven aus SintersCurvePackage. Die STD.CVF-Tonwertkurve muss in den CHDK-Tonwertkurven-Einstellungen nicht aktiviert (Kurve darf AUS [=NONE] sein), aber muss unbedingt geladen sein ("Current custom curve=A/CHDK/CURVES/STD.CVF").

Weitere Voraussetzung: CHDK-DE Version ab 26.2.2010

Anmerkung: Die vier ISO-Boost-Filenamen beginnen hier mit einem kleinen Buchstaben um das CURVES-Hauptverzeichnis nicht zu sehr zu beeinträchtigen. Durch Kleinschreibung rutschen die Filenamen in der CHDK-Anzeige an das Verzeichnisende. Die Kurve STD.CVF habe ich in Grossschrift belassen da die Kurve in dieser Form auch bei Curve-Bracketing Verwendung findet.

##########################


Infos zur Parametereinstellung:
In den CHDK-Skripteinstellungen für die beiden folgenden Parameter bitte die eigenen (!) Kameradaten eintragen:

"Mini. CamDigiBrennweite x10" bedeutet die kleinste Millimeteranzahl des Brennweitenbereichs der Kamera (steht vorne auf dem Objektiv), bitte multipliziert mit dem Faktor 10. (Bspw. bei "5,8mm" bitte hier "58" eintragen)

"Mini. CamAnalogBrennweite" bedeutet die kleinste dazu äquivalente Brennweite der Kamera im analogen 36mm-Format. Das sind häufig 35 Millimeter, bei Weitwinkelkameras oft auch 28 Millimeter. Den jeweiligen Wert kann man den technischen Daten des eigenen Kamerahandbuchs entnehmen.

Diese beiden Daten verwendet das Skript zur Berechnung der jeweils aktuellen Brennweite im analogen 36mm-Format. Daraus wird dann gemäss Kehrwertregel die in der jeweiligen (Zoom-)Brennweiten-Einstellunglängste tolerierbare Belichtungszeit gewählt, die gerade noch eine unverwackelte Freihand-Aufnahme zulässt.


Ich bin gespannt wie weit sich noch Probleme zeigen.

Viel Spaß beim Ausprobieren,
Sinter
Dateianhänge
LowLight.zip
LowLight-Skript und zugehörige Tonwertkurven für CHDK-10-Bit-Kameras, Verwackelungsschutz bei Freihandaufnahmen
EDIT: Weiter unten findet ihr eine ergänzte aktuellere Version 0.2
(14.73 KiB) 97-mal heruntergeladen
Zuletzt geändert von Sinter am 08.03.2010, 19:38, insgesamt 1-mal geändert.
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, 14:16
Wohnort: München

Beitragvon msl » 05.03.2010, 13:18

Hallo Sinter,

das klingt spannend. Wenn ich mehr Zeit habe, folgt ein ausführlicher Test.

Damit das Skript nicht im Tonwertkurven-Thread untergeht, habe ich mir erlaubt, es als neues Thema anzulegen.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4512
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Gute Idee

Beitragvon Sinter » 05.03.2010, 13:44

Hallo msl,

gute Idee von Dir.

Wenn möglich bitte auch probieren wie sich das Skript in Teleeinstellung verhält. Bei Bedarf kann ich es für extremere Telewerte gerne noch um zusätzliche Apex-Werte erweitern. Ein weiteres Feature für das Skript habe ich ohnehin noch geplant. Zunächst ist mir wichtig, ob das Grundgerüst so klappt.

Wenn man meine vier ISOBoost-Kurven analog wie bei syscurves.cvf in einer Curve zusammenfassen würde, gäbe es denn vielleicht Chancen, darauf direkt mittels CHDK zurückgreifen zu können, ähnlich wie bei AutoDR? Ob sich so ein Wunschtraum erfüllen lässt....?

Prinzipiell kann ich ja bereits meine ISOBoost-Kurven in einzelne Kanäle von syscurves.cvf einschleusen, das funktionierte schon gut. Nur müsste man dann noch mittels CHDK auf die vier Farbkanäle, respektive ISOBoost-Kurven einzeln zurückgreifen können. Nachdem das bei AutoDR funktioniert, sollte das prinzipiell in vergleichbarer Form auch hier möglich sein. Ob man das aber für CHDK als weiteres zusätzliches Feature auch durchsetzen könnte, ist eine andere Frage.

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, 14:16
Wohnort: München

Beitragvon Hamster.78 » 05.03.2010, 23:03

Hallo Sinter,

das ist ja wirklich ein klasse Ansatz. Ich benutze bereits mit Begeisterung deine Tonwertkurfen (meist IB2EV.cvf)
und bin immer wieder das man bei den Lichtverhältnissen noch für ein Foto hin bekommt. =D>

Danke erst einmal für die super Dokumentation.
Nach den ersten Tests muss ich feststellen, das leider die Bilder oft einen sehr starken violett Anteil haben.
Und wenn ich die Tonwertkurfe manuell auswähle wird das Bild viel heller.

Bild
über LowLight (iBEV4.cvf)
Bild
manuelle Tonwertkorrektur (iBEV4.cvf)

kann mir gerade den Unterschied noch nicht erklären.
[edit:]selbst wenn ich die gleiche Belichtungszeit und die Tonwertkorrektur auf iBEV4 einstelle. Komme ich auf unterschiedliche Ergebnisse.[/edit]

gruß Hamser Bild
Zuletzt geändert von Hamster.78 am 07.03.2010, 20:17, insgesamt 1-mal geändert.
◄ SX100 v100c ◄ Samsung NX10

CHDK DEThe Canon Camera Hackers Manual schon gelesen?
Benutzeravatar
Hamster.78
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 318
Registriert: 24.01.2009, 12:21
Wohnort: Sachsen / Chemnitz

Beitragvon Knips » 05.03.2010, 23:14

Hallo Hamster:

Deine Kamera rauscht ja bei ISO 200 (Laut Firefox Plugin FxIF) schon recht extrem. Und das bei relativ langer Belichtungszeit. Ist das normal?
Gruß
Knips

Powershot A610 100f+ 1GB Kingston SD-Card / 4GB Transcend + CHDK 1.1.0-451 DE
Bildbearbeitung: Photshop CS3 + CS5 | Lightroom 3.0 | GIMP 2.6 | Paint Shop Pro 6
Benutzeravatar
Knips
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 162
Bilder: 0
Registriert: 29.11.2008, 18:28
Wohnort: Altes Land (Region)
Kamera(s): A610 100f - CHDK 1-1-0-r636-DE

Beitragvon Hamster.78 » 05.03.2010, 23:38

Knips hat geschrieben:Und das bei relativ langer Belichtungszeit. Ist das normal?
Hallo Knirps. hier ein paar Vergleichfotos mit ISO200.
Das rauschen bei ISO200 ist gering, auch mit der manuellen Tonwertkorrektur

Bild
Belichtung 1s ohne Script & Tonwertkorrektur
Bild
Belichtung 1s ohne Script & iB2EV Tonwertkorrektur
Bild
lowlight Script & iB4EV Tonwertkorrektur

wie sind die Ergebnisse bei dir?

gruß Hamster Bild
◄ SX100 v100c ◄ Samsung NX10

CHDK DEThe Canon Camera Hackers Manual schon gelesen?
Benutzeravatar
Hamster.78
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 318
Registriert: 24.01.2009, 12:21
Wohnort: Sachsen / Chemnitz

Beitragvon Knips » 07.03.2010, 19:27

Hallo Hamster:

das Lowlight.lua haut nicht ganz hin:
Code: Alles auswählen
:125: attempt to call glo
bal 'set_console_layout'
(a nil value)
PRESS SHUTTER TO CLOSE


Das Script war auf Defaults eingestellt, nix geändert.

Voreinstellungen:
Modus: Tv
Belichtungszeit: 1s
Weißabgliech: Wolkig
In der Canon FW ISO 200 eingestellt.
Makro: aus (deswegen sind die auch so unscharf, nicht nur wegen Verwackler beim Hinstellen der Kamera)

Hier mal die drei Vergleichsbilder:

Bild
Belichtungszeit 1s ohne Tonwertkurve ohne Script

Bild
Belichtungszeit 1s mit iB2EV Tonwertkurve ohne Script

Bild
Belichtungszeit 1s mit iB4EV Tonwertkurve ohne Script

Script konnte ich irgendwie nicht testen. Warum auch immer.
Gruß
Knips

Powershot A610 100f+ 1GB Kingston SD-Card / 4GB Transcend + CHDK 1.1.0-451 DE
Bildbearbeitung: Photshop CS3 + CS5 | Lightroom 3.0 | GIMP 2.6 | Paint Shop Pro 6
Benutzeravatar
Knips
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 162
Bilder: 0
Registriert: 29.11.2008, 18:28
Wohnort: Altes Land (Region)
Kamera(s): A610 100f - CHDK 1-1-0-r636-DE

Beitragvon Hamster.78 » 07.03.2010, 19:52

Knips hat geschrieben:das Lowlight.lua haut nicht ganz hin:
hast du auch die Build 267 vom 26.02.2010 installiert?

Knips hat geschrieben:Das Script war auf Defaults eingestellt, nix geändert.
die Brennweite musst du anpassen, hier der Wert aus deinen Handbuch

Zeile: 85
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
@param d Min. CamDigiBrennweite x10
@default d 73
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9
die analoge Brennweite kannst du auf 35 stehen lassen


Knips hat geschrieben:Script konnte ich irgendwie nicht testen. Warum auch immer.
hast du die Tonwertkurfe STD.CVF eingestellt?

gruß Hamster Bild
◄ SX100 v100c ◄ Samsung NX10

CHDK DEThe Canon Camera Hackers Manual schon gelesen?
Benutzeravatar
Hamster.78
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 318
Registriert: 24.01.2009, 12:21
Wohnort: Sachsen / Chemnitz

Beitragvon Knips » 07.03.2010, 20:07

Hallo Hamster:

- Hab den Build nicht installliert. :oops:
- Hab den Wert nicht angepasst. :oops:
- Hab die STD.CVF nicht eingestellt. :oops:

Okay, da muss ich wohl noch mal nachsitzen.

Notiz an mich selbst: Knips, setzen sechs! ;)

EDIT: Hab grad mal mein CHDK auf die neuste verfügbare version aktualisiert: Ein wunder, das Script tut! Asche auf mein Haupt.
Gruß
Knips

Powershot A610 100f+ 1GB Kingston SD-Card / 4GB Transcend + CHDK 1.1.0-451 DE
Bildbearbeitung: Photshop CS3 + CS5 | Lightroom 3.0 | GIMP 2.6 | Paint Shop Pro 6
Benutzeravatar
Knips
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 162
Bilder: 0
Registriert: 29.11.2008, 18:28
Wohnort: Altes Land (Region)
Kamera(s): A610 100f - CHDK 1-1-0-r636-DE

Feintuning

Beitragvon Sinter » 08.03.2010, 11:49

Hallo,

vielen herzlichen Dank für Euer Feedback.

Falls die Bilder einen größeren Violettanteil haben, dann habe ich vielleicht die falschen ISOBoost-Files in den Zip-File gepackt. Das muss ich noch überprüfen, denn zwischen manuellem Laden und LowLight dürfte es theoretisch keinen Qualitätsunterschied geben. Eine andere denkbare Möglichkeit wäre noch ein veränderter Weißabgleich. Andere Ursachen als diese beiden Möglichkeiten würden Rätsel aufwerfen.

Der Build muss in der Tat aktuell sein. Rudi und Msl hatten einen für das Skript notwendigen Befehl ganz neu in CHDK eingebaut. Mit der manuellen Eingabe der Kameraparameter bin ich ebenfalls noch optimistisch, dass vielleicht doch noch ein Weg gefunden wird, die auf das analoge 36-mm-Format umgerechnete Brennweite doch noch mit CHDK-Bordmitteln im Skript einlesen zu können. Derzeit geht das nur über den neuen Befehl und einen aus den Kameraparametern ausgerechneten Umrechnungsfaktor.
Vielleicht sollte ich die Kamera-Parameter per default erst mal auf 0 setzen, und dies im Skript abfragen. Dann könnte das Skript denjenigen Usern, die noch keine Parameter eingegeben haben, einen Hinweis geben, dass zunächst diese Daten nötig sind.

Zu beachten ist, dass LowLight maximal 4 EV gewinnen kann. Falls mehr nötig wäre, dann wird darauf im Anschluss an die Aufnahme hingewiesen, die Aufnahme aber dennoch ausgeführt, auch wenn dann die Verwackelungsgefahr zunimmt. Ich werde noch ein Update zur Verfügung stellen, welches in solchen Fällen auch noch akustisch meckert.

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, 14:16
Wohnort: München

Beitragvon CHDKLover » 08.03.2010, 15:22

Hallo Sinter,
ich hab mir dein Projekt mal angeschaut. Sehr guter Ansatz, bei mir funktioniert das Script bei ausgeschaltetem Blitz bestens.

Die Methode die du benutzt um die Kurven umzuschalten ist mit den bisherigen Mitteln verständlich. Probleme würden aber auftreten, wenn das Skript während der Aufnahme aus irgendwelchen Gründen abgebrochen wird.
Deshalb schlage ich einen neuen LUA-Befehl vor, der das wechseln von Kurven in LUA-Skripts ermöglicht.
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
set_curve_file(<Kurvenname>)
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9

Der <Kurvenname> kann sowohl absolut angegeben werden oder auch relativ, dabei wird das Standard Kurvenverzeichnis (zur Zeit: A/CHDK/CURVES) als Basis genommen.

Damit könnte man das Skript folgendermaßen gestalten:

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
if belichtungsueberschuss <= 0 then

--   print("Es ging OHNE ISOBoost.")

   print("ISOBoost nicht benötigt.")

   wert=kamerawillbelichten

   -- Sicherheitshalber Kurven nochmals deaktivieren

   set_curve_state(0)

else

   ev=(belichtungsueberschuss/96)+1;

   if(ev>4) then ev=4 end

   print("Anwendung von  ISOBoost",ev)

   -- RAW evtl EINschalten

   -- set_raw(1)

   -- Kurve laden

   -- set_curve_file(string.format("A/CHDK/CURVES/iB%dEV.CVF",ev))

   set_curve_file(string.format("iB%dEV.CVF",ev))

   -- Tonwertkurve Custom aktivieren.

   set_curve_state(1)

   -- Belichtung entsprechend IsoBoost-Kurve verkürzen:

   wert=(kamerawillbelichten+(96*ev))

end
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9


Du hattest noch folgende Bemerkung im Skript stehen:
-- Tonwertkurve Custom aktivieren. Dies darf erst NACH den
-- rename-Prozessen erfolgen, sonst Bild oft zu hell. Grund??vielleicht alte Kurve?

Grund dafür war, dass der Befehl zum Status setzen, die Aktuell eingestellte Kurve erneut lädt, die Kurven werden nicht erst beim ausführen geladen!

Nachteil meiner Idee ist, dass die ursprünglich eingestellte Kurve nicht mehr rekonstruiert werden kann. Vielleicht müsste man noch ein get_curve_file Befehl hinzufügen.

CHDKLover
Dateianhänge
set_curve_file.diff
Neuer LUA Befehl set_curve_file(&lt;Kurvenname&gt;)
(1.77 KiB) 65-mal heruntergeladen
Zuletzt geändert von CHDKLover am 09.03.2010, 11:47, insgesamt 1-mal geändert.
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 19:25
Wohnort: Dresden
Kamera(s): a610 100e

Mehrere Aspekte

Beitragvon Sinter » 08.03.2010, 16:34

Hallo CHDKLover,

vielen herzlichen Dank für dein Feedback.

Mögliche Probleme falls das Skript zu einem unglücklichen Zeitpunkt abgebrochen wird, sind mir durchaus bewusst. Ich bin dabei, zumindest den zurück-rename-Prozess unmittelbar hinter das Shooting zu setzen um die kritische risikobehaftete Zeit möglichst gering zu halten. Vielleicht könnte man in CHDK auch hilfsweise zusätzlich zwei Befehle realisieren, welche das Zulassen eines vorzeitigen Abbruchs steuern könnten. Also vor das Shooting einen AbbruchSperrBefehl setzen, und erst hinter den zurück-rename-Prozessen mittels SperrAuflöseBefehl wieder einen vorzeitigen Abbruch zu gestatten. So eine temporäre Abbruchsperre wäre vielleicht auch für andere Anwendungen sinnvoll.


Ein richtiger Kurvenladebefehl für Lua ist auch von mir schon öfter gewünscht worden. So ein Befehl wäre traumhaft. Aber bislang scheint solch ein Kurvenladebefehl in CHDK nicht realisierbar zu sein. Falls sich da doch noch irgendwann etwas machen lässt, es würde mich freuen. Hast du vielleicht bereits eine Idee dazu, oder worum handelt es sich genau bei deinem Download-File?


Dein Hinweis zu meiner Bemerkung im Skript ist für mich wieder eine neue Erkenntnis. Vielen Dank für diese Hintergrundinfo.


Deine get_curve_file-Überlegung ist eine gute Idee. Mit so neuen ein oder zwei Befehlen würden das Kurvenhändling richtig Freude machen und die Realisierung von Ideen massiv vereinfachen. Ich bin gespannt, ob sich da irgendwann doch noch etwas machen lässt. Spontane trickreiche Ideen sind euch Entwicklern immer zuzutrauen. Ich würde mich sehr freuen falls sich doch noch etwas in dieser Richtung machen ließe.

Viele Grüße,
Sinter
Zuletzt geändert von Sinter am 08.03.2010, 17:18, insgesamt 1-mal geändert.
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, 14:16
Wohnort: München

LowLight.lua 0.2

Beitragvon Sinter » 08.03.2010, 17:16

Hallo,

quick and dirty ein paar Dinge an LowLight.lua verändert:

Bezüglich vorzeitigen aktiven Abbruchs die risikobehaftete Zeit um einen Hauch verringert. (Code umgestellt)
Akustische Warnung hinzugefügt falls Restrisiko verbleibt.
Kleine Veränderung der Textformatierung.
Tele-Bereich sicherheitshalber ein wenig erweitert.


@Hamster:
Es war noch die Beobachtung offen, dass die manuelle Anwendung von ISOBoost zu helleren Bildern führt als die Anwendung von ISOBoost innerhalb LowLight.lua:
Die Beobachtung ist korrekt und erklärbar:

Da die manuelle Anwendung von ISOBoost einzig die Helligkeit verstärkt ohne (!) die Blende oder Belichtungszeit zu verändern, wird das Bild grundsätzlich entsprechend der ISOBoost-Stufe heller dargestellt, beispielsweise bei ISOBoost4 also um 4 EV.

Hingegen wird bei Anwendung der ISOBoost-Kurven innerhalb von LowLight.lua gleichzeitig (!) die Belichtungszeit genau um die jeweils genutzte ISOBoost-Stufe verkürzt (!), und somit das Bild normal hell belichtet. Dadurch kann unter schwachen Lichtverhältnissen mittels automatischer ISOBoost-Kurven-Anwendung eine kürzere Belichtungszeit und damit auch ein deutlich geringeres Verwackelungsrisiko realisiert werden. Falls die Kamera beispielsweise normalerweise 0.4 Sekunden belichten wollte, so wird unter diesen Umständen mittels LowLight.lua nur mit 1/40 Sekunde belichtet. Dadurch wird das Verwackelungsrisiko um den beträchtlichen Faktor 16 vermindert. Ein Gewinn vor allem für Kameras ohne ImageStabi. Abendliche Innenraumaufnahmen mit available Light sind nun selbst mit meiner Ixus 60 aus freier Hand möglich, ohne zu verwackeln.

Viele Grüße,
Sinter
Dateianhänge
LowLight_version_0_2.zip
LowLight Version 0.2
(15 KiB) 76-mal heruntergeladen
Zuletzt geändert von Sinter am 11.03.2010, 15:01, insgesamt 1-mal geändert.
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, 14:16
Wohnort: München

Beitragvon msl » 08.03.2010, 21:51

Hallo Sinter,

ich bin leider noch nicht dazu gekommen, Dein Skript mit der Kamera zu testen. :oops:

Jetzt sind mir aber doch beim Studium des Skriptes ein paar Dinge aufgefallen. Es sollte zur Sicherung der Kamera-Einstellungen unbedingt die Funktion restore() (siehe Handbuch S.70). Diese Funktion wird bei Skript-Abbruch ausgeführt. Man kann in ihr Werte definieren, die bei Abbruch wieder hergestellt werden sollen. Also einfach zu Beginn alle Ist-Werte speichern, die evt. verändert werden (auch definierte (eingestellte) Kurven). Diese Werte können dann in restore() wieder Verwendung finden. Schau Dir einfach das Skript automatische Belichtungsreihe an.

Vielleicht kann bei Deinem "Print-Problem" der Befehl console_redraw() helfen. Mit ihm wird ein Neuschreiben der Konsole erzwungen.

Ich habe schon mit CHDKLover diskutiert. Ein Befehl set_curve_file ist in meinen Augen wirklich nur hilfreich wenn es dazu einen Abfrage-Befehl get_curve_file. Eigentlich ist der Kurven-Austausch schon hinreichend von naddel per Skript organisiert. Die Befehle würde die Sache natürlich übersichtlicher machen. Nebenbei bemerkt ist der Anhang von CHDKLover die notwendige Änderung des Quellcodes für den Befehl set_curve_file.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4512
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon CHDKLover » 09.03.2010, 11:47

Hallo,
ich habe heute noch einen Befehl hinzugefügt um das aktuelle Curvefile auszulesen: get_curve_file()
Anwendungsbeispiel:
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
old_curve_file=get_curve_file()

set_curve_file("test.CVF")

-- shoot()

set_curve_file(old_curve_file)
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9


Der Patch für das CHDK mit beiden LUA-Befehlen, eine Testversion für die ixus60 100a sowie mein Testskript befindet sich im Anhang.

CHDKLover
Dateianhänge
CHDK-ixus60_sd600-100a-1.0.1-DE.zip
TestCHDK für ixus60 100a
(408.13 KiB) 63-mal heruntergeladen
LowLight2.lua
Testscript mit set_curve_file und get_curve_file
(13.41 KiB) 63-mal heruntergeladen
get_set_curve_file.diff
set_curve_file(&lt;Kurvenname&gt;)
get_curve_file()
(1.9 KiB) 67-mal heruntergeladen
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 19:25
Wohnort: Dresden
Kamera(s): a610 100e

Nächste

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron