Hallo Sinter,
ich möchte noch einmal die ISO-Problematik ansprechen.
Hier liegt noch erhebliches Potential. Für bestimmte Situationen reicht eine Erhöhung der ISO-Empfindlichkeit, um sinnvolle kürzere Verschlusszeiten zu erzielen. In Kombination mit den Kurven sind auch bei sehr schlechten Lichtverhältnissen kurze Verschlusszeiten möglich.
Bisher ist es mir bei diversen Tests nicht gelungen, nach dem Fokussieren die ISO-Empfindlichkeit sichtlich zu verändern. Die Exif-Daten werden zwar richtig geschrieben. Es erfolgt aber keine Einrechnung ins Bild. Sicher funktioniert das Setzen nur vor dem gesamten Shooting mit dem Befehl set_sv96.
Ein zweites Problem sind die unterschiedlichen Angaben, mit denen wir umgehen. Wir haben den sv96-Wert, den realen ISO-Wert und Market-ISO. Letzterer ist der Wert, der uns durch die Canon-Anzeige immer wieder ins Auge fällt. Deshalb sollten wir ihn auch als Eingabe-Wert verwenden. So könnten wir mit einer Verdopplung der Market-ISO-Werte (50, 100, 200, 400, 800, 1600, 3200) einen Sprung von einer Belichtungseinheit annehmen.
Nun müssen diese Werte in sv96-Werte (Apex-Werte) umgerechnet werden. Dazu habe ich eine ganz interessante Näherungsfunktion im Zusammenhang mit dem SunsetF15(F16)-Skript aus dem internationalen Forum gefunden. Hier wird der Sv96 mit einer Schrittweite von 12 berechnet.
Selbstverständlich sind auch "krumme" Werte möglich. Hier passt die Canon-Software dann den Market-ISO-Wert an die Standardwerte an (z.B. wird aus 666 640). Die Anpassung gilt aber nur für die Exif-Daten. Gerechnet wird mit dem sv96-Wert.
Nachfolgend nun das Skript als Lua-Code mit der Näherungsfunktion zum Testen. Eine zweite Funktion grenzt den ISO-Bereich ein, damit nicht mit "utopischen" Werten gerechnet wird.
--[[
@title ISO-Test
@param i Market ISO
@default i 50
]]
function chk_range
(val, mini, maxi
)
local ret
=val
if ret
<mini
then
ret
=mini
end
if ret
>maxi
then
ret
=maxi
end
return ret
end
function ISO_to_sv96
(val
)
local ISO
=val
local sv96
=323
ISO
=chk_range
(ISO,
50,
3200)
local ISO1000
=ISO
*1000
local countISO
=50000
while countISO
<ISO1000
do
countISO
=(countISO
*1091)/1000
sv96
=sv96+
12
end
return sv96
end
function fastshoot
()
press
("shoot_half")
repeat
sleep
(1)
until get_shooting
() == true
press
("shoot_full")
release
("shoot_full")
release
("shoot_half")
repeat
sleep
(1)
until get_shooting
() ~
= true
end
iso
= i
sv96
= ISO_to_sv96
(iso
)
print(iso, ISO_to_sv96
(iso
))
set_sv96
(sv96
)
fastshoot
()
wait_click
(0)Erstellt in 0.007 Sekunden, mit
GeSHi 1.0.8.9
Gruß msl