[Lua] Das bessere get_dof und get_hyp

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

Beitragvon elektronikfreak » 21.12.2009, 15:47

gehtnix hat geschrieben:Ein half_shoot ist hier nicht notwendig.

Das shoot_half ist ja nur notwendig, damit die tatsächliche Blende berücksichtigt wird. Das ist immer so, egal ob du get_av, get_av96, get_dof oder get_hyp_dst verwendest, und auch unabhängig davon, ob du eine Lookup-Tabelle oder eine Polynom-Approximation benutzt.
Ohne shoot_half kannst du grundsätzlich nicht erreichen, dass die tatsächlich von der Kamera eingestellte Blende berücksichtigt wird. Das kann auch gar nicht anders sein, da die Kamera die Blende erst in dem Moment ermittelt.
Allerdings überschätzt du, glaube ich, den Zeitvorteil durch Weglassen von shoot_half. Wie in diesem Thread zu sehen, macht es in Summe keinen Unterschied, ob du erst shoot_half und dann shoot_full ausführst oder gleich shoot_full.

gehtnix hat geschrieben:Aber ahhhh, dann brauchen wir die Brennweite... das würde dann für jede Kamera ein Skript ergeben.
Du sagst es. Ohne Brennweiten-Info keine DOF-Berechnung.

Gruß

elektronikfreak
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 20:33
Wohnort: München

Beitragvon gehtnix » 21.12.2009, 18:10

Hi elektronikfreak,

HDR-Hyper ist nur mit dem AV-Modus zu verwenden.

elektronikfreak hat geschrieben:dass die tatsächlich von der Kamera eingestellte Blende berücksichtigt wird
Aber das macht das Skript im Av-Modus doch mit der Lookuptabelle. Die Blende wird doch durch meine Anwahl vorgeben. Sie wird nur durch die oben erwähnten und fest definierten Bedingungen verändert. Und bei angewählten f2.8 und Brennweite 9.5 kann es nur ein f3.2 ergeben!
Alles weitere wirkt sich über die Verschlußzeit aus. Diese ist aber hier nicht gefragt.

elektronikfreak hat geschrieben:Das kann auch gar nicht anders sein, da die Kamera die Blende erst in dem Moment ermittelt.
Die Aussage gilt eingeschränkt für den Av-Modus. Für den M-Modus gilt sie eingeschränkt (f2.8+Brennweite9.5) aber nicht bei f8. Da wird jede Zeit akzeptiert, da wird die Blende nicht runtergeregelt.

elektronikfreak hat geschrieben:Allerdings überschätzt du, glaube ich, den Zeitvorteil durch Weglassen von shoot_half
Mag sein das ich das überschätze. Dennoch spare ich mir 30ms Zeilenzeit + den Fokussiervorgang selber. Und wenn´s dumm kommt ist der Fokus nicht zu ermitteln. Betrifft aber nur HDR-Hyper.

elektronikfreak hat geschrieben:Ohne Brennweiten-Info keine DOF-Berechnung.
Wir bräuchten eine weitere Funktion (get_focalmm). So dass CHDK die Brennweite mit der Zahl (7300) liefert. Die Zahlen sind ja im Trunk für die jeweilige Kamera hinterlegt und werden ja dort auch für DOF benötigt.

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 elektronikfreak » 21.12.2009, 18:59

gehtnix hat geschrieben:Wir bräuchten eine weitere Funktion (get_focalmm). So dass CHDK die Brennweite mit der Zahl (7300) liefert.

Ja, das wäre eine tolle Sache!

Gruß

elektronikfreak
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 20:33
Wohnort: München

Beitragvon gehtnix » 27.12.2009, 16:52

Moin moin,

habe da noch was gefunden
http://de.wikipedia.org/wiki/Sch%C3%A4rfentiefe
und
http://www.erik-krause.de/schaerfe.htm

Da kommt der Begriff Beugung vor. Nach meinem Verständnis eine Bereich der Unschärfe der vom Auge aber wohl noch als Scharf wahrgenommen wird.
Möglich dass der CHDK-DOF das noch berücksichtigt.

Wenn Du mal in dem Rechner Werte eingibst und eine Tabelle MIT und OHNE Beugung erstellen lässt wirst Du sehen dass der Hyperfcale nach vorn rutscht. Am Ende wird sozusagen ein unscharfer, nicht wahrnehmbarer Bereich angehängt.

In Excel habe ich das Ganze streng nach Formel nachgebildet.
Das rote Feld zeigt dann das letzte Bild an denn da steht der Fokus dann hinter dem Hyperfocalen.
Bei 10mm "focus distance" tackert der aber erstmal um 1mm bis zu Bild 21.

gruß gehtnix
Dateianhänge
CHDK DOF.xls
(125 KiB) 304-mal heruntergeladen
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 elektronikfreak » 28.12.2009, 10:27

gehtnix hat geschrieben:Da kommt der Begriff Beugung vor. Nach meinem Verständnis eine Bereich der Unschärfe der vom Auge aber wohl noch als Scharf wahrgenommen wird.

Hi gehnix, nein, das trifft's nicht so ganz. Was Beugung ist, ist in dem von dir zitierten Wiki-Artikel unter "Wellenoptische Schärfentiefe" erklärt. Die Folge der Beugung ist, dass das Bild auch bei im schärfsten Punkt (also einem Objekt, auf das optimal fokussiert wurde) nicht beliebig scharf wird - selbst wenn der CCD noch so viele Megapixel hätte. Die Beugung macht sich umso stärker bemerkbar, je weiter du die Blende schließt. Bei Blende 8 ist zwar die Tiefenschärfe besser, aber wenn du den schärfsten Punkt betrachtest, ist er ein bisschen weniger scharf als bei Blende 2,8.
Das kannst du leicht ausprobieren, wenn du mal genau das gleiche Foto mit Bl. 2,8 und 8,0 machst, am besten mit Fokus=unendlich. Dann wirst du sehen, dass das mit Bl. 2,8 schärfer ist. Der Effekt ist umso stärker, je kleiner die Pixel des CCD sind - das ist mit ein Grund, warum bei Kompaktkameras keine Blenden >8 einstellbar sind - das Bild würde zu unscharf.

gehtnix hat geschrieben:Möglich dass der CHDK-DOF das noch berücksichtigt.

Glaube ich zwar nicht, aber auf jeden Fall kann das nicht die Ursache sein, dass bei 1 cm Fokusdistanz und Blende 2,8 völlig unrealistisch große DOF-Werte zurückgeliefert werden.

gehtnix hat geschrieben:In Excel habe ich das Ganze streng nach Formel nachgebildet.
Irgendwie sehe ich nicht, wo du in deiner Excel-Tabelle die Beugung berücksichtigst - über die Eingabe des Streukreisdurchmessers? - Den müsstest du dann in Abhängigkeit von Blende etc. immer entsprechend berechnen.
Aber wie auch immer: die Argumentation mit der Beugung ist die, dass bei kleiner Blende der Streukreisdurchmesser größer wird. Das Bild wird unschärfer, damit sinken die Anforderungen an die geometrische Tiefenschärfe. Für DOF-Stacking ist das aber nicht so gravierend, da bei kleiner Blende die Tiefenschärfe sowieso steigt. Wenn du die Beugung außer Acht lässt, machst du bei Blende 8 ein paar Bilder mehr als eigentlich nötig. Bei Blende 2,8 ist die Beugung bereits dadurch berücksichtigt, dass man als Streukreisdurchmesser 5 µm ansetzt.

Gruß

elektronikfreak


gruß gehtnix[/quote]
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 20:33
Wohnort: München

Beitragvon gehtnix » 28.12.2009, 14:26

elektronikfreak hat geschrieben:Irgendwie sehe ich nicht, wo du in deiner Excel-Tabelle die Beugung berücksichtigst
Nur nach dem DOFmaster meinte ich.

Ich kann mir nicht vorstellen, dass die Entwickler so daneben gegriffen haben. Ist doch die Überprüfung des DOF so leicht! Selber weisen sie ja auch auf diese Seite hin.

Wir müssten mal wissen was da in CHDK gerechnet wird!


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 elektronikfreak » 29.12.2009, 09:56

gehtnix hat geschrieben:Ich kann mir nicht vorstellen, dass die Entwickler so daneben gegriffen haben. Ist doch die Überprüfung des DOF so leicht! Selber weisen sie ja auch auf diese Seite hin.

Es muss ja nur so sein, dass die Fokusdistanz ab CCD statt ab Linse in die Rechnung eingesetzt wurde - und schon ist klar, warum das Ergebnis zu groß ist. Und dass es zu groß ist, steht für mich außer Zweifel - das zeigt sowohl die Theorie als auch die Praxis.
Aber es ist ja auch kein Problem, die fehlerhaften Funktionen durch eigene Funktionen zu ersetzen. Das macht man in der Softwareentwicklung genauso, wenn man Probleme mit einer defekten Library-Funktion hat.

Gruß

elektronikfreak
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 20:33
Wohnort: München

Welches Schweinderl hätten Sie den gern?

Beitragvon gehtnix » 30.12.2009, 01:48

Hi,

jetzt habe ich mal alle Einstellungen unter DOF-Rechner eingestellt und dann die Werte ausgeben lassen :roll:

Bild

In der grünen Spalte erscheinen die Werte laut DOFmaster. Bei get_hyp_dist fehlen 52mm CCD-Linse und weitere 7mm.

Was das "Canon Motiv-Dist. als Nah-Limit" bedeutet, keine Ahnung.
"Benutze EXIF Motiv-Dist. (PC65)" scheint wohl keine Auswirkung zu haben.

Was mir besonders auffällt ist, dass sich mit "Canon Motiv-Dist. als Nah-Limit" der Near_limit stark verschiebt.

Skript und Excel anbei. Daten könne aus der Log-Datei ohne große Änderungen nach Excel übertragen werden. Die gelben Zellen zeigen Veränderungen zur linken Zelle an.
Kamera auf manuellen Fokus stellen und nur unter Optionen verändern.
Das Objektiv wurde also nicht verstellt.
Bei großen Brennweiten steigt das Skript aus.

gruß gehtnix
Dateianhänge
DOF2.bas
(1.79 KiB) 327-mal heruntergeladen
LOG Auswertung.xls
(20 KiB) 329-mal heruntergeladen
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 elektronikfreak » 30.12.2009, 10:12

Na, jetzt willst du's aber ganz genau wissen!
Jedenfalls Kompliment: eine schöne Zusammenstellung. Die Ergebnisse von get_hyp_dist sind, abgesehen von den fehlenden 7 mm, ja noch nachvollziehbar. Das kann man von get_near_limit und get_far_limit nicht unbedingt behaupten. Immerhin: get_dof = get_far_limit - get_near_limit ist wenigstens in sich schlüssig.
Aber wie auch immer, da bleibe ich doch lieber bei meinen eigenen Funktionen!

Gruß und "Guten Rutsch"

elektronikfreak
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 20:33
Wohnort: München

Beitragvon gehtnix » 31.12.2009, 16:46

elektronikfreak hat geschrieben:Na, jetzt willst du's aber ganz genau wissen!
Naja, hätte ich ja auch schon mal früher machen können :oops:

Die 7mm, weiß der Henker woher die kommen. Bei Brennweite 29.2 kommen da -39 raus :shock:

"Canon Motiv-Dist. als Nah-Limit" - Könnte folgende Bewandtnis auf sich haben. Bei einem Fokus von 23 haben wir ein Near-Limit von 18. Nun wird, und vermutlich nur in der Anzeige(?), das Near_Limit auf den Fokus von 23 verschoben. Der DOF wandert dann nach Hinten raus, verändert sich aber. Das Objektiv wurde ja in der Auflistung nicht verstellt.
Wieso und warum, da habe ich keine Ahnung. Geschweige was das soll.

Bei get_hyp-dist von 1110 müsste es doch in der ersten Spalten-Anzeige korrekt 1117+52 (Dist. von CCD-Bildebene) 1169 heißen? Bei 1058 (grün) dann 1117?

Meine Kamera verändert die Brennweite von 7.3 auf 29.2 (=21.9mm) mit einem ausgemessenen Objektivweg von 11.9mm. Ich vermute mal dass sich die Bildebene auch noch verschiebt, bleibt also nicht bei fixen 52mm. ?


Gruß und "Guten Rutsch"

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 elektronikfreak » 31.12.2009, 18:02

gehtnix hat geschrieben:Ich vermute mal dass sich die Bildebene auch noch verschiebt, bleibt also nicht bei fixen 52mm. ?

Ja sicher, die Bildebene muss ja nun mal da liegen, wo der CCD ist. Da sich beim Zoomen die Baulänge des Objektivs verändert, ändert sich auch der Abstand zwischen Frontlinse und CCD.
Zumindest bei meiner A710 ist es so: Bei kurzen Brennweiten ist die Längenänderung praktisch Null, und bei langen ist mir's egal, weil da sowieso kein Macro möglich ist.


Gruß und jetzt aber wirklich bald gut rutschen!
elektronikfreak
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 20:33
Wohnort: München

Beitragvon gehtnix » 31.12.2009, 23:31

Hi,

oaner geht no dieses Jahr :D

http://www.dofmaster.com/faq.html

"Is the 'subject distance' measured from the front of the lens or from the film plane?

This question is relevant only for close-up and macro photography."

In der Tabelle scheint es sich so darzustellen. Bei 75mm (erste Spalte) große Differenz bei 302mm fast identisch, auf jeden Fall vernachlässigbar.

Und jetzt in der Kürze, da gibt es Knotenpunkte usw, usw.. Und bei den Canon´s "Optische Terminologie.pdf" liegt dieser Punkt nicht da wo wir es gern hätten. "film Plane" ist demnach auch nicht richtig. :roll:

Mir geht es nicht darum Dir nachzuweisen dass Du Unrecht hast. Aber wie kann es dann angehen dass Susi2Stack mit den viel zu hohen DOF-Werten und "falschen Formeln" perfekte Stackbilder liefert?

gruss gehtnix Bild
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 elektronikfreak » 01.01.2010, 11:38

gehtnix hat geschrieben:Aber wie kann es dann angehen dass Susi2Stack mit den viel zu hohen DOF-Werten und "falschen Formeln" perfekte Stackbilder liefert?

Tut es nicht. "Perfekt" sind die Bilder nur, wenn die Bedingungen so sind, dass die zu hohen DOF-Werte keine große Rolle spielen. Wenn du mit Blende 2,8 im Bereich 1 bis 20 cm einen Stack machst, nimmt Susi2Stack nur etwa 5 Bilder auf. Im zusammengesetzten Bild erkennt man deutlich unscharfe Bereiche, siehe im folgenden Bild auf der Höhe der Taste "4" sowie zwischen den Taste "7" und "Exp":
Bild
Wie man im Bild sieht, ist hier die tatsächliche Tiefenschärfe nur etwa 1 mm, der Abstand von Bild zu Bild beträgt wegen der fehlerhaften DOF-Berechnung aber mehrere mm. Nach hinten verschwindet das Problem dann allmählich, weil dort der Unterschied zur richtigen Berechnung nicht mehr so groß ist.
Dieses Problem war der Ausgangspunkt meiner Überlegungen. Bei richtiger Berechnung verschwindet das Problem praktisch völlig. Das folgende Bild ist mit korrigierter Berechnung aufgenommen. Der Taschenrechner befindet sich noch ein gutes Stück näher an der Kamera. Die Taste "0" ist nur wenige mm vor der Linse und deshalb unscharf.
Bild
Beide Bilder sind mit Blende 2,8 aufgenommen, das erste mit Original Susi2Stack, das zweite mit korrigierter Berechnung. (Ja, ich weiß, den Weißabgleich hätte man besser machen können, aber darauf kam es mir hier nicht an). Der Preis für die bessere Schärfe ist natürlich, dass man viel mehr Bilder braucht. Das kann man stark reduzieren, indem man auf Blende 8 geht.
Bei größeren Objektentfernungen fällt das alles, wie gesagt, kaum noch ins Gewicht. Dort liefert auch Susi2Stack die von dir postulierten "perfekten" Bilder. Natürlich werden dann auch mit der korrigierten Berechnung nicht viel mehr Bilder gemacht als mit Susi2Stack.

Gruß

elektronikfreak
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 20:33
Wohnort: München

Vorherige

Zurück zu Code-Ecke

Wer ist online?

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

cron