nachdem ich CHDK nun schon einige Zeit nutze, möchte ich nun auch mehr mit den RAW Dateien machen.
Das für meine Camara passende LenseProfil möchte ich mit dem Adobe LensProfil Creater erstellen.
Um die Referenzbilder zu erstellen habe ich an ein passendes Script gedacht, und mal versuchsweise eines erstellt.
Nach meinen Vorstellungen wird ein Start Scrip laufen, und die Bilder der Mitte für die Vorgegebene Blenden machen, und alle Einstellungen in einer zweiten Datei als Folge Script schreiben.
So wie ich die Blende ändere, passe ich auch die Belichtungszeit an. Den ISO Wert würde ich hierbei fest einstellen.
Mit diesem zweiten Script können dann die Bilder für die anderen acht Positionen gemacht werden.
Im Namen des Folge scripts ist der Zoom Wert enthalten, damit die Scripte bei verschiedenen Entfernungen nicht überschrieben werden.
Hier mal mein Entwurf:
(Zum Start habe ich das Script "br_easy" als Vorlage genommen).
- Code: Alles auswählen
--[[
********************************
Licence: GPL
thx Mac, Atnes
version 0.9.000
(c)stefan 14/07/2014
********************************
@title Profile erstellen
@param a Av Schritt 1/3
@default a 1
@range a 1 9
@param b Startverzögerung in s
@default b 3
]]
function log_name()
zoom_akt = get_zoom()
log_path = "A/CHDK/SCRIPTS/"
log_file_name = "LP_Z_"..zoom_akt.."_"
log_file_ending = ".LUA"
log_name = log_path..log_file_name..log_file_ending
logfile=io.open(log_name,"wb")
io.output(logfile)
end
function log(...)
io.write(...)
io.write("\r\n")
end
function delay(sec)
repeat
cls()
print("Start in ", sec, "Sekunden")
sleep(960)
sec = sec - 1
until sec==0
cls()
end
function fastshoot()
pic_num = pic_num + 1
press("shoot_half")
repeat sleep(10) until get_shooting() == true
-- repeat sleep(10) until get_focus_ok() == 1
press("shoot_full")
release("shoot_full")
release("shoot_half")
repeat sleep(10) until get_shooting() ~= true
end
function get_info()
log("--Foto: ", pic_num)
Bv=get_bv96()
log("--Helligkeitswert Bv96=", Bv)
Av=get_av96()
log("--Blendenwert Av96=", Av)
Sv=get_sv96()
log("--Empfindlichkeitswert Sv96=", Sv)
Tv=get_tv96()
log("--Belichtungszeit Tv96=", Tv)
Fo=get_focus()
log("--Focus in mm get_focus()=", Fo)
isom=get_iso_market()
isor=get_iso_real()
log("--ISO Market=", isom, " ISO Real=", isor)
ndf=get_nd_present()
log("--nd_present=", ndf)
if pic_num == 1 then
log("set_focus(", Fo, ")")
log("set_sv96(", Sv, ")")
log("set_iso_real(", isor, ")")
end
log("set_av96_direct(", Av, ")")
log("set_tv96_direct(", Tv, ")")
log("shoot()")
log("")
end
--script start
if b < 0 or b > 10 then b = 3 end
av_step = a * 32
delay_sec = b
max_AV96 = 576
--max_AV96 = 640
pic_num = 0
if delay_sec > 0 then delay(delay_sec) end
log_name()
log("--Auto LenseProfil ", os.date("%d.%m.%Y %X\n"))
log("")
log("set_aflock(1)")
log("")
fastshoot()
set_aflock(1)
get_info()
set_aflock(0)
av_neu = Av
tv_neu = Tv
repeat
print("nächste Blende")
sleep(50)
av_neu = av_neu + av_step
tv_neu = tv_neu - av_step
--set_av96(av_neu)
set_av96_direct(av_neu)
--set_user_av96(av_neu)
set_tv96_direct(tv_neu)
fastshoot()
set_aflock(1)
get_info()
set_aflock(0)
av_test = av_neu + av_step
until av_test > max_AV96
log("")
log("set_aflock(0)")
log("")
log("--Fertig: gemachte Bilder: ", pic_num)
print("Fertig: gemachte Bilder: ", pic_num)
mzs = get_zoom_steps()
az = get_zoom()
log("--get_zoom=", az, "get_zoom_steps=", mzs)
fm = get_focus_mode()
log("--get_focus_mode=", fm)
log("")
Als Ergebnis kommt dies heraus:
- Code: Alles auswählen
--Auto LenseProfil 09.08.2014 17:17:29
set_aflock(1)
--Foto: 1
--Helligkeitswert Bv96=435
--Blendenwert Av96=405
--Empfindlichkeitswert Sv96=593
--Belichtungszeit Tv96=623
--Focus in mm get_focus()=977
--ISO Market=372 ISO Real=226
--nd_present=2
set_focus(977)
set_sv96(593)
set_iso_real(226)
set_av96_direct(405)
set_tv96_direct(623)
shoot()
--Foto: 2
--Helligkeitswert Bv96=434
--Blendenwert Av96=437
--Empfindlichkeitswert Sv96=594
--Belichtungszeit Tv96=591
--Focus in mm get_focus()=977
--ISO Market=375 ISO Real=228
--nd_present=2
set_av96_direct(437)
set_tv96_direct(591)
shoot()
--Foto: 3
--Helligkeitswert Bv96=433
--Blendenwert Av96=469
--Empfindlichkeitswert Sv96=595
--Belichtungszeit Tv96=559
--Focus in mm get_focus()=977
--ISO Market=378 ISO Real=229
--nd_present=2
set_av96_direct(469)
set_tv96_direct(559)
shoot()
--Foto: 4
--Helligkeitswert Bv96=434
--Blendenwert Av96=501
--Empfindlichkeitswert Sv96=594
--Belichtungszeit Tv96=527
--Focus in mm get_focus()=940
--ISO Market=375 ISO Real=228
--nd_present=2
set_av96_direct(501)
set_tv96_direct(527)
shoot()
--Foto: 5
--Helligkeitswert Bv96=434
--Blendenwert Av96=533
--Empfindlichkeitswert Sv96=594
--Belichtungszeit Tv96=495
--Focus in mm get_focus()=940
--ISO Market=375 ISO Real=228
--nd_present=2
set_av96_direct(533)
set_tv96_direct(495)
shoot()
--Foto: 6
--Helligkeitswert Bv96=434
--Blendenwert Av96=565
--Empfindlichkeitswert Sv96=594
--Belichtungszeit Tv96=463
--Focus in mm get_focus()=940
--ISO Market=375 ISO Real=228
--nd_present=2
set_av96_direct(565)
set_tv96_direct(463)
shoot()
--Foto: 7
--Helligkeitswert Bv96=433
--Blendenwert Av96=597
--Empfindlichkeitswert Sv96=595
--Belichtungszeit Tv96=431
--Focus in mm get_focus()=940
--ISO Market=378 ISO Real=229
--nd_present=2
set_av96_direct(597)
set_tv96_direct(431)
shoot()
--Foto: 8
--Helligkeitswert Bv96=435
--Blendenwert Av96=629
--Empfindlichkeitswert Sv96=593
--Belichtungszeit Tv96=399
--Focus in mm get_focus()=977
--ISO Market=372 ISO Real=226
--nd_present=2
set_av96_direct(629)
set_tv96_direct(399)
shoot()
set_aflock(0)
--Fertig: gemachte Bilder: 8
--get_zoom=26get_zoom_steps=101
--get_focus_mode=0
Soweit scheint es zu laufen.
Aber einige Fragen habe ich noch zu LUA:
- Genügt es im zweiten Script, wenn ich zwischen dem "set_aflock(1)" und dem "set_aflock(0)" nur AV und TV neu belege?
- Kann ich den Focus einfach mit set_focus() angeben? oder muss ich hier noch etwas beachten?
Geschrieben habe ich das ganze für eine PowerShot SX260.
Nächste Woche will ich mal einen Testlauf machen.
Stefan