Tonwertkurvenpaket zum Download

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

Tonwertkurvenpaket zum Download

Beitragvon Sinter » 03.11.2009, 16:20

UPDATE vom 14. Januar 2010:

SintersCurvePackage 1.2.6
by Sinter

Download von Tonwertkurven sowie zugehöriger Dokumentation.
(Der Downloadlink befindet sich am Ende dieses Beitrags und ist in diesem Forum grundsätzlich nur für Forenmitglieder sichtbar.)

Ein kleiner Auszug der Möglichkeiten von SintersCurvePackage:

Bild



Hallo,

nachdem CHDK (zumindest bei den 10-Bit-RAW-Kameras) über die brilliante Tonwertkurvenfunktionalität verfügt, möchte ich mal ein kleines Paket von Tonwertkurven zur Verfügung stellen.

Viel Spaß,
Sinter


-------------

Hier mein neuestes Update:


UPDATE 14. Januar 2010: SintersCurvePackage 1.2.6:

3 Tonwertkurven für Farbstufen in Fehlfarben

PDF-Dokumentation strukturell überarbeitet und aktualisiert

-----------

UPDATE 7.Januar 2010: SintersCurvePackage 1.2.5:

PlateauPush-Tonwertkurve

PlateauSprung-Tonwertkurve

Alterungs-Tonwertkurve (Aged)

3 ZweiKanal-Tonwertkurven

3 FixierterKanal-Tonwertkurven

Weitere Kurvennamen auf 5.3-Format umgestellt

Tonwertkurvenbündel in Unterordner organisiert und meist pro Tonwertkurvenbündel je
eine Kurve exemplarisch in das Curves-Hauptverzeichnis gestellt.

Die PDF-Dokumentation um eine Betrachtung des Zusammenhangs von Weißabgleich und
Tonwertkurven ergänzt.


--------

UPDATE 18. Dezember 2009: SintersCurvePackage 1.2.4:


3 Neutraldichtefilter-Tonwertkurven als Gegenstück zu den ISOBoost-Tonwertkurven.

Germany-Tonwertkurve
Italy-Tonwertkurve

6 Stempel-Tonwertkurven.

Schwachkontrast-Tonwertkurve (insbes. f. SW-Fotografie).

30 Hochkontrast-Tonwertkurven.

Optimierung von Skript OrigPCur.lua: Nach Auslösung Pause automatisiert = minimiert; (Zusätzlich die alte Version mit manuellem Sleep als Alternative weiterhin beigefügt).

Teilweise Kurvennamen auf 5.3-Format umgestellt. (ermöglicht u. U. Exif-Eintrag)

PDF-Doku ergänzt


--------

UPDATE 20. November 2009: SintersCurvePackage 1.2.3.2: curve.lst-Liste fuer Naddels Test verbessert

--------


UPDATE 13. November 2009 : SintersCurvePackage 1.2.3:

Kurve Zeitung.CVF in einer Feinheit verbessert.

Syntax-Fehler im Skript ISOBoost.lua beseitigt.

Skript OrigPCur.lua: Bug beseitigt und um Auslöseverzögerung erweitert.

(Bitte Sorry dass ich in Version 1.2 versehentlich fehlerhafte Skripts reingestellt hatte)

---------

UPDATE 10. November 2009: SintersCurvePackage 1.2.2: Liste fuer Naddels Test hinzugefügt

---------

UPDATE 10. November 2009:

SintersCurvePackage 1.2:

63 SkyLight-Tonwertkurven zur systematischen Beeinflussung der Himmelsabbildung.

Die Skripte wurden optimiert.

Umstellung auf das 8.3-Fileformat.

PDF-Dokumentation ergänzt.


---------

UPDATE 6. November 2009:

SintersCurvePackage 1.1:

Zusätzliche ExtremCurves für ISOBoost für all diejenigenunter euch, die auch noch die letzten Möglichkeiten auskundschaften wollen, und eine Ergänzung/Abwandlung der FarbstufenCurves wenn man kein Schwarz im Bild haben möchte.

Dann noch ein weiteres Skript um zwei Aufnahmen hintereinander anzufertigen, die erste Aufnahme als Originalfoto, die zweite mittels Tonwertkurve.


PDF-Dokumentation ergänzt.


----------------------------------------------
Dateianhänge
SintersCurvePackage_1_2_6.zip
Tonwertkurven (und Skripte) für CHDK-10-Bit-RAW-Kameras
(220.3 KiB) 1102-mal heruntergeladen
SintersCurvePackage_1_2_6.pdf
Ãœberarbeitete Dokumentation
(152.79 KiB) 1173-mal heruntergeladen
Zuletzt geändert von Sinter am 14.01.2010, 10:36, insgesamt 21-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, 13:16
Wohnort: München

Beitragvon gehtnix » 03.11.2009, 18:32

Hi Sinter,

alle Achtung, da hast Du ja gewaltig gewerkelt.

Das Skript aktiviert mir zusätzlich den Blitz (up) und den manuelle Fokus (down) :shock:

Sonst habe ich noch nicht weiter gemacht.

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Feintuning fürs Skript

Beitragvon Sinter » 03.11.2009, 18:54

Hallo gehtnix,

okay, dann braucht das Skript wohl noch etwas mehr Feintuning.
Glücklicherweise kann man die Tonwertkurven auch bereits OHNE Skript anwenden.
Ich hatte da ursprünglich eigentlich noch eine Abfrage drin ob man sich im Play/Foto/Video-Modus befindet, aber irgendwie war das bei meiner Ixus leider nciht ganz stabil und ich habe das dann hier für die offizielle Version rausgelöscht.

So sah das (experimentelle) Skript vorher aus:

--[[
@title ISOBoost
rem 01.Sept.2009 by Sinter

rem Dieses Skript schaltet nur die Custom-Curve EIN/AUS.
rem Die ISOBoost-Funktionalität wird hierbei ausschließlich in Verbindung
rem mit einer zuvor geladener ISOBoost-Curve gewaehrleistet.
rem Das Skript ist also ZWINGEND auf eine zuvor geladene
rem ISOBoost-Curve angewiesen.

rem if mode ==/~= 258 gilt zumindest für ixus60 um den FotoModus abzufragen
--]]

j=1

rec,vid,mode=get_mode()
print(rec)
print(vid)
print(mode)
-- sleep(1500)

if mode ~= 258 then
print("! Schalte auf FotoModus !")
j=0
exit_alt()
-- sleep(1500)

end


if mode == 258 then
print("Vorher muss eine")
print("ISOBoost-Curve geladen")
print("sein.")
print("Press 'UP' =ISOBoost EIN")
print("oder 'DOWN' =ISOBoost AUS")
while (j==1) do
wait_click(100)
if is_pressed "up" then -- ISOBoost=ON
set_curve_state(1)
j=0
set_raw_nr(2) -- noise_reduction=ON
print("ISOBoost EINgeschaltet!")
end
if is_pressed "down" then -- ISOBoost=OFF
set_curve_state(0)
j=0
set_raw_nr(0) -- noise_reduction=AUTO
print("ISOBoost AUSgeschaltet!")
end
end
exit_alt()
end


Ich bin aber auch nicht unbedingt der beste Skripter und hatte über die LUA-Abfrage bezüglich des Kameramodus nicht so ganz rausbekommen, wie das unter LUA genau geht, bzw. in welcher Syntax. Vielleicht kannst du ja noch mit einer vernünftigen Prüfroutine aushelfen oder das Skript kameraübergreifend zum Laufen bringen? Dir geht doch das Skripten so schön beneidenswert locker von der Hand. Ich bin zwar nicht jeden Tag online, aber das könnten wir dann demnächst mit hineinpflegen. Denn deine Perfektion ist ja schon legendär, nachdem du sogar noch einen Weißabgleich in deine Susi integriert hast. Ideen haben und versuchen alles auszureizen. Das gefällt mir. :-)

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

Re: Feintuning fürs Skript

Beitragvon gehtnix » 03.11.2009, 19:09

Sinter hat geschrieben:Dir geht doch das Skripten so schön beneidenswert locker von der Hand.
:D aber nix mit LUA
Sinter hat geschrieben:...... schon legendär....... Das gefällt mir. :-)
Legendär wäre sicherlich mein erstes Skript in LUA :D

...... aber war ich doch vorhin ganz fix und habe Dein Skript mal eben abgeändert, natürlich auf uBasic :p
Bin ich natürlich voll auf die Nase geflogen :evil: fehlt dieser eine Befehl doch.....

Ich will ja nix ausschließen! Aber bis dahin will ich mit uBasic

geschmeidig bleiben

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Der Wunderbefehl von msl

Beitragvon Sinter » 03.11.2009, 19:20

Jaja, dieser EINE Befehl. Nämlich der absolut geniale Wunderbefehl von msl.

Okay, dann muss wohl doch schon wieder msl mit einem kleinen Tipp aushelfen, wie ich es denn unter LUA hinbekomme, zuverlässig den Kameramodus abzufragen... :-)

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

Beitragvon naddel » 03.11.2009, 19:51

Hallo Sinter

hier der Auszug aus der LUA Referenz

get_mode

(available since CHDK version 0.6.7 / changeset #545)

Returns the active mode of the camera (3 values): bool is_record, bool is_video, number mode. The mode number is a bit field with several different values, exactly as would be returned by mode_get() in the CHDK C code. See the CHDK source for more information.
Usage:

rec,vid,mode=get_mode()



im Klartext nach dem Aufruf von get_mode

ist rec true wenn man im Aufnahmemodus ist anderfalls false
ist vid true wenn man im Videomodus ist andernfalls false

mode enthält neben der Modenummer noch andere Informationen im hohen Byte
den Modus erhält man indem man das hohe Byte maskiert.

Code: Alles auswählen
bitand(mode,0xFF)


D.h. die eigenliche Modenummer ist <256
Wenn Du nur wissen willst ob Du im Aufnahme bist
reicht

Code: Alles auswählen
rec,vid,mode=get_mode()
if rec then ....


oder im Aufnahmemodus aber nicht im Videomodus


Code: Alles auswählen
rec,vid,mode=get_mode()
if rec then
   if not vid then ...


Gruß naddel


Ãœbrigens tolle Arbeit. funtzt =D>
Zuletzt geändert von naddel am 04.11.2009, 02:05, insgesamt 1-mal geändert.
S2 1.00f mit aktueller DE Version
Benutzeravatar
naddel
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 156
Registriert: 26.01.2009, 19:42
Kamera(s): G3 s2 ixusii

Re: Der Wunderbefehl von msl

Beitragvon gehtnix » 03.11.2009, 21:11

Sinter hat geschrieben:Jaja, dieser EINE Befehl. Nämlich der absolut geniale Wunderbefehl von msl.
Also ich meinte diesen Befehl hier "set_curve_state(n)". Den gibt es (noch?) nicht in uBasic.

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Beitragvon msl » 03.11.2009, 22:52

Hallo,

erstmal ein großes Lob für diese zeitaufwendige kreative Arbeit. =D>

Die Kurven funktionieren wie beschrieben. ISOBoost ist eine hervorragende Idee. Da stecken bestimmt sehr viele zeitraubende Tests dahinter, da der Kurven-Editor recht schwierig zu bedienen ist.

Eine Bemerkung zu den Dateinamen: Es wäre günstiger, Namen zu wählen, die dem 8.3-Format entsprechen. DryOS-Kameras können nur dieses Format anzeigen. Längere Namen werden abgekürzt.

Bei dem Beispiel-Skript sollte vielleicht noch vor dem exit_alt() ein sleep(1000) eingefügt werden. Dann hat auch gehtnix Zeit genug, die Finger vom Taster zu nehmen. ;)

Die Modus-Erkennung hat naddel schon beschrieben. rec, vid und play funktionieren dabei gut. Auf eine Erkennung der unterschiedlichen Aufnahmemodi würde ich verzichten, da das noch nicht bei allen Kameras richtig funktioniert, insbesondere bei älteren Ixen und A6xx.

Ein Wunderbefehl ist die Aktivierung der Kurvenfunktion wahrlich nicht. Hier wurde lediglich der Menü-Schalter auf ein Lua-Kommando umgesetzt. Und warum nur in Lua? Weil ich davon ausgegangen war, dass dieser Befehl immer im Zusammenhang mit Datei-Operationen benutzt wird, was nur mit Lua funktioniert.

Damit kommen wir nämlich zum nächsten Punkt. Sinter hat schon zurecht nach einer Möglichkeit gefragt, per Skriptbefehl die Kurvendateien zu wechseln. Das wäre sicherlich lösbar, würde aber auf wenig Gegenliebe stoßen, da CHDK wegen einer "Nebenfunktion" vom Speicherbedarf her noch größer wird.

Deshalb muss nach einer anderen Lösung gesucht werden. Ein erster Ansatz wäre, die Lua-Skript-Möglichkeit zu benutzen, Dateien, umzubenennen. Man legt also eine Datei als "Benutzerkurve" fest. Aus einer Liste der verfügbaren Kurven-Dateien wählt man eine aus und benennt diese in "Benutzerkurve" um. Dabei ist natürlich darauf zu achten, dass nach Skriptende wieder alles mit den richten Namen versehen ist.

*zu-naddel-auf-ein-lösung-wartend-hinguck*

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon naddel » 03.11.2009, 23:28

Hallo msl,

das umbenennen ist ja kein Problem. Eine einfache Menuefunktion folgt
demnächst mit dem Editor.
Aber damit ist die Datei ja noch nicht geladen.
Gibt es eine Ladefunktion ???
Ansonsten ginge das nur mit einem Neustart.
Ich denke nicht, daß schlichtes ein- und ausschalten von custom
die Kurvendatei neu lädt. Muß ich testen.
Andererseits liese sich die Umschaltung wohl ohne großen Aufwand
auf diese Funktionsweise abändern.

Gruß naddel

EDIT habe eben in der curves.c nachgeschaut
sieht so aus als würde die Kurvendatei tatsächlich bei jedem Einschalten
von custom neu geladen. Es sollte also funktionieren.
Zuletzt geändert von naddel am 03.11.2009, 23:51, insgesamt 1-mal geändert.
S2 1.00f mit aktueller DE Version
Benutzeravatar
naddel
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 156
Registriert: 26.01.2009, 19:42
Kamera(s): G3 s2 ixusii

Beitragvon msl » 03.11.2009, 23:48

Hallo naddel,

die zu verarbeitende Kurve holt sich die Funktion erst beim Verrechnen mit dem Bild. Demzufolge sollte ein einfaches Umbenennen reichen. Die Kurvenfunktion erhält nur den Dateinamen der Tonwertkurve als Information.

Sicherlich wird ein Test aufschlussreicher sein.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon gehtnix » 03.11.2009, 23:57

msl hat geschrieben:Bei dem Beispiel-Skript sollte vielleicht noch vor dem exit_alt() ein sleep(1000) eingefügt werden. Dann hat auch gehtnix Zeit genug, die Finger vom Taster zu nehmen. ;)
Und vor dem sleep(1000) passt auch noch sehr gut ein schlankes cls() hin, wegen der Optik.

Und die 1000 :evil: soooo neeee laaange Leitung habe ich nun auch nicht, 200 reicht schon ;)

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Beitragvon naddel » 04.11.2009, 00:32

Hallo msl,

Warum den Aufwand mit Um- und Rückumbenennen treiben. Einfach im Menü einen Standardnamen eingeben z.B. std.crv und die ausgewählte Kurve dann auf diesen Namen kopieren.

Gruß naddel

BTW: ich suche gerade nach mehr Möglichkeiten zur Eingabe.
Bei der s2 eigentlich kein Problem, sind ja genug Tasten da.

z.B. flash als Umschalttaste nach dem Muster

if key=="set" then if is_pressed("flash") then ... else .. end

Deine 720 hat ja auch eine flash-Taste, die aber soweit ich sehe der UP-Taste entspricht.

Frage: liefert die Taste tatsächlich im rec-Modus flash sonst aber up?
bei der 610 von gehtnix ist das wohl so s.o. 2.Beitrag
S2 1.00f mit aktueller DE Version
Benutzeravatar
naddel
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 156
Registriert: 26.01.2009, 19:42
Kamera(s): G3 s2 ixusii

Beitragvon msl » 04.11.2009, 00:52

Hallo naddel,

Die [UP]-Taste liefert nur up. Eine [flash]-Taste gibt es nur bei der S(SX)-Klasse. Du wirst Dich eher auf weniger Tasten konzentrieren müssen. Nimm als Referenz eine A460 oder A470. Die haben die Minimalausstattung.

Mit dem Kopieren hast du schon recht. Die Kopierfunktion wird aber als nicht 100%ig sicher beschrieben. Deshalb dachte ich bei einem Test an ein sicheres Umbenennen.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon naddel » 04.11.2009, 01:12

hallo msl,

Welche Kopierfunktion?
ich dachte da an etwas wie
io.read(*all)
io.write(*all)

fertig

Wenn ich das Bild bei digitalkamera.de richig sehe ist
auf der der Universltaste oben ein Blitz aufgemalt.
Und die Äußerung von gehtnix (von der a610 gibs dort leider keine Rückansicht)
über die Nebeneffekte im Skript von
Sinter interpretiere ich so, daß up und flash auf derselben Taste liegen.
Ist es also so, daß im rec-modus ein up auch immer den Blitz einschaltet.
D.h. muß ein Skript am Anfang die Werte von flash und macro sichern
und am Ende wieder zurücksetzen wenn man up down benutzen will?

Hat die 470 zoom_in zoom_out? Ist auf dem Bild leider nicht zu sehen.
Sollte aber da sein.

gruß naddel
S2 1.00f mit aktueller DE Version
Benutzeravatar
naddel
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 156
Registriert: 26.01.2009, 19:42
Kamera(s): G3 s2 ixusii

Beitragvon gehtnix » 04.11.2009, 01:38

naddel hat geschrieben:Und die Äußerung von gehtnix (von der a610 gibs dort leider keine Rückansicht)
Guckst Du hier

naddel hat geschrieben:über die Nebeneffekte im Skript von
Sinter interpretiere ich so, daß up und flash auf derselben Taste liegen.
Ist es also so, daß im rec-modus ein up auch immer den Blitz einschaltet.
So wie ich das jetzt lese scheint es da ja einen Unterschied zwischen uBasic und LUA zu geben. In uBasic nutze ich ja z.B. nur die up-Taste um dann im Skript die Anweisung zu geben welche Taste "wirklich" gedrückt werden soll. Selbst den Blitz muß ich ja in uBasic dann extra ausweisen. Daher bin ich auch gar nicht auf das sleep gekommen.

EDIT
Jetzt habe ich mal rumgewerkelt. Also da ist kein Unterschied zu uBasic.
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
j=1

while (j==1) do

wait_click(0)

    if is_pressed "up" then

        click "up"

        end

    if is_pressed "down" then

        click "left"

        end

    if is_pressed "right" then

        click "up"

        end

    if is_pressed "left" then

        click "up"

        end

end



 
Erstellt in 0.007 Sekunden, mit GeSHi 1.0.8.9

Eigenartigerweise geht das jetzt ohne sleep, kann auf die Taste auch lange drücken. Es wird nur ein Click ausgeführt.

ENDE EDIT
gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Nächste

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron