[Lua] Skript zur Generierung badpixel.bin für DNG-Nutzung

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

Skript zur Generierung badpixel.bin für DNG-Nutzung

Beitragvon msl » 07.12.2008, 22:53

**********************************************************************************************************************************************************************
Das Skript wird nicht mehr benötigt, da eine Funktion zur Erzeugung der Datei badpixel.bin in CHDK eingebaut wurde - erreichbar im RAW-Menü.
***********************************************************************************************************************************************************************




Mit dem neuesten Update kann nun auch die für die DNG-Unterstützung notwendige Datei badpixel.bin per Skript erzeugt werden.

ewavr hat dazu die entsprechende Vorarbeit geleistet. =D> (umfangreicher Thread im int. Forum zum Thema DNG

Das Skript kann ab rev. 623 genutzt werden.

Es macht ein Foto (Motiv ist völlig egal) mit einer Verschlusszeit von 0,5s und berechnet daraus die Datei badpixel.bin. Dieser Vorgang wird zum Vergleich wiederholt. Stimmt der Vergleich, kann der Vorgang mit dem Abspeichern der Datei abgeschlossen werden. Ansonsten muss das Skript erneut gestartet werden.

Das ganze dauert etwas. Also nicht gleich in Panik verfallen, wenn nichts passiert. Ca. 30 Sekunden sollten eingeplant werden.
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
@title Create badpixel.bin
]]


function get_bad_count()
    a=get_raw()
    set_raw(255)
    set_tv96_direct(96)
    shoot()
    b=get_raw()
    set_raw(a)
return b
end

repeat
    if get_mode() == false then
        cls()
        print("Kein Aufnahmemodus!")
        print("Skript wird zum")
        print("Umschalten gestoppt.")
        print("Nach Umschalten Skript")
        print("mit [PRINT] neu starten.")
        sleep(3500)
        exit_alt()
        sleep(1000)
    end
until get_mode() == true

cls()
print("Erzeuge die Datei")
print("badpixel.bin.")
print("Bitte warten...")
sleep(2000)
x1=get_bad_count()
x2=get_bad_count()
if (x1==x2) then
    cls()
    print("Fehl-Pixel-Zahl:", x1)
    print("[SET] Datei speichern")
    print("[andere Taste] beenden")
    wait_click(0)
    if is_pressed "set" then
        os.remove("A/CHDK/badpixel.bin")
        os.rename("A/CHDK/bad_tmp.bin", "A/CHDK/badpixel.bin")
        cls()
        print("Die Datei badpixel.bin")
        print("wurde gespeichert.")
    end
    os.remove("A/CHDK/bad_tmp.bin")
else
    cls()
    print("Datei konnte nicht")
    print("erzeugt werden.")
    print("Bitte Skript neu starten!")
end
Erstellt in 0.006 Sekunden, mit GeSHi 1.0.8.9


Bitte Testen. Das Skript soll in das CHDK-Paket integriert werden.

Gruß msl
Dateianhänge
badpixel.lua
badpixel.bin erzeugen
(1.06 KiB) 556-mal heruntergeladen
■ "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 Babul » 08.12.2008, 05:30

es klappt! auf der a720 arbeitet das script wunderbar - nach etwa 15 sekunden ist die LED wieder aus, dann wird gespeichert (hab DNG an und JPG auf minimum - daher erkenne ich aus der resultierenden 3 sekundenlangen zeit, dass erst die arbeit, dann das speichern erfolgt), das alles 2mal, ergibt ca. 40 sekunden wartezeit, die absolut akzeptabel ist.
die beiden bilder waren nicht identisch, aber sehr dunkel, beleuchtet mit einer kerze, 1 halogenlampe, 2 monitore). ich dachte, es muss 2mal das gleiche bild gemacht werden - falsch gedacht!
jedenfalls funzt es...
Benutzeravatar
Babul
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 79
Registriert: 07.08.2008, 19:39
Wohnort: Lindenfels

Beitragvon frescher » 18.12.2008, 16:31

Habe auf einer IXUS50 die Re. 640. Die Ausführung des Skriptes hat funktioniert und badpixel.bin ist erstellt. Jetzt hätte ich erwartet, dass ich unter RAW-Einstellungen als vorletzten Punkt DNG-Format finde aber leider ist dem nicht so.

Ist das mit der IXUS50 überhaupt machbar, habe leider nichts darüber gefunden?

Danke.
IXUS50
frescher
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 1
Registriert: 18.12.2008, 12:13

Beitragvon msl » 18.12.2008, 16:41

Hallo und willkommen im Forum.

Ja, leider wird die Ixus50 noch nicht unterstützt. Es fehlt wohl noch ein Farbprofil.

Grundsätzlich ist es so, wenn ein beschriebener Menüpunkt nicht verfügbar ist, dann gibt es diese Funktion für die Kamera auch nicht.

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 pterozaurus » 19.12.2008, 13:36

hab's getestet und das Script funktioniert. Es bleibt zwar immer wieder stehen kann aber ohne weiteres mit dem "2x print" wieder angeschubbst werden. badpixel.bin wird erstellt und die Bilder im DNG Format gespeichert.

Super!

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, 11:41
Kamera(s): SX220 HS
Ixus 55

Beitragvon silas » 19.12.2008, 13:47

Funktioniert auf a550
a550,IXUS 80IS (1.01a)
aktuelle version
Flickr
Benutzeravatar
silas
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 150
Registriert: 23.04.2008, 14:11
Wohnort: Schweden

Beitragvon A590er » 11.01.2009, 12:35

Ist auch auf A590IS funktionsfähig. :lol: .
Michael (A590er)
----------------------------
A590IS mit CHDK 1.01b
----------------------------
A590er
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 7
Registriert: 10.01.2009, 21:05
Wohnort: Bayerisches Allgäu

Beitragvon Mway » 12.01.2009, 22:37

Hab es gerade auf die S5 IS gemacht und klappt einwandfrei. Vielen Dank dafür
Mway
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 6
Registriert: 26.08.2008, 10:31

Beitragvon Frank » 14.01.2009, 03:22

Hallo - es fuktioniert auch auf meiner A710is. Habs zuerst mit dem script vom Beitrag von "msl Verfasst am: 07.12.2008, 21:53 Titel: [Lua] Skript zur Generierung badpixel.bin für DNG-Nutzung" gestartet. War auf deutsch, super. :D
Da hier aber geschrieben wurde "Bitte Testen. Das Skript soll in das CHDK-Paket integriert werden."
hab ich es nochmals mit dem CHDK-Paket "a710-100a-0.9.1-677-full.zip" gestartet. War leider in englisch, schade. :?
PowerShot A710is
Frank
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 9
Registriert: 17.08.2008, 00:23

Beitragvon Frank » 15.01.2009, 01:29

Hallo - ich hab mich an der Übersetzung versuch, aber überhaupt nicht hin bekommen.
Kann mir hier jemand helfen (sicher auch für andere)? Natürlich nur die fett markierten Stellen ins deutsche übersetzen, danke. Ich denke mal, das sind alle Textstellen, die im Display zu sehen sind.

--[[
@title Create badpixel.bin
]]

function get_bad_count()
a=get_raw()
set_raw(255)
set_tv96_direct(96)
shoot()
b=get_raw()
set_raw(a)
return b
end

repeat
if get_mode() == false then
cls()
print("Run in Record mode!")
sleep(3000)
cls()
exit_alt()
sleep(1000)
end
until get_mode() == true
cls()
print("Wait please... ")
print("This takes a few seconds!")
print("Don't panic!!")
sleep(3000)
x1=get_bad_count()
x2=get_bad_count()
if (x1==x2) then
print("Bad pixel count: ", x1)
print("press SET to save file,")
print("or other key to exit")
wait_click(0)
if is_pressed "set" then
os.remove("A/CHDK/badpixel.bin")
os.rename("A/CHDK/bad_tmp.bin", "A/CHDK/badpixel.bin")
print("File is saved.");
end
os.remove("A/CHDK/bad_tmp.bin")
else
print("Try this script again...")
end
:?:
PowerShot A710is
Frank
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 9
Registriert: 17.08.2008, 00:23

Beitragvon msl » 15.01.2009, 12:02

Das Skript liegt doch schon in einer deutschen Version vor - siehe erster Beitrag.

Der Testaufruf galt der richtigen Funktionsweise. Das Downloadpaket enthält natürlich eine englische Version, weil CHDK auf einer englischen Benutzerführung basiert. Es wäre sehr aufwendig, nun auch noch die Skripte in verschiedenen Sprachen zur Verfügung zustellen.

Tausche einfach das im Paket enthaltene Skript mit dem aus dem ersten Beitrag aus. Die Funktionen sind identisch.

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 PhyrePhoX » 15.01.2009, 12:57

das skript muss exakt einmal laufen... man muss ja nun wirklich kein englisch dafür können. man muss lediglich wissen dass es im aufnahmemodus gestartet werden sollte, nicht im playback.
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 22:31

badpixel mit deutscher Anzeige?

Beitragvon Frank » 15.01.2009, 13:23

Hallo msl - dadurch bin ich ja erst drauf gekommen. Wenn es eine ältere deutsche Version gibt, wäre es doch schön die neue auch in deutsch zu haben.
Kann man da mit z.B. EditPad den Text ändern und einfach auf speichern gehen? Oder ist ein spezielles Programm nötig?
Übrigens wenn Du schreibst, die Versionen sind gleich, warum sind denn
erstes >>sleep (3500)<< auf >>sleep (3000)<<
und
drittes >>sleep (2000)<< auf >>sleep (3000)<<
abgeändert ?
Ich würde es ja gern selbst machen. Aber mit dem Wörterbuch kann der Sinn schon völlig verdreht sein. Anders kann ich es aber nicht. :oops:
PowerShot A710is
Frank
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 9
Registriert: 17.08.2008, 00:23

Beitragvon msl » 15.01.2009, 13:39

Also, die Funktionsweise ist absolut identisch.

Die sleep-Anweisung ist ein ein Wartebefehl, der hier zum Lesen der Texte angewendet wird. Das Skript würde auch ohne diese Wartezeiten arbeiten. Der Text wäre aber nicht lesbar.

Die Texte sind vom Inhalt her auch ähnlich.

Es gibt da aus meiner Sicht nichts zu verändern. Du kannst aber gerne mit dem Skript experimentieren.

Und wie wie PhyrePhoX schon geschrieben, braucht man das Skript nur einmal zu benutzen. Da ist jeglicher Mehraufwand überflüssig.

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 Frank » 15.01.2009, 18:45

Hallo - danke an alle, dann laß ich alles wie es ist. Ich habs schon einmal durchlaufen lassen. Ist ja o.k. so. - Gruß Frank :-`
PowerShot A710is
Frank
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 9
Registriert: 17.08.2008, 00:23

Nächste

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast