get_dof und get_hyp_dist richtig anwenden

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

get_dof und get_hyp_dist richtig anwenden

Beitragvon elektronikfreak » 09.12.2009, 23:22

Ich habe mich ein wenig mit Susi2Stack (@gehtnix: super Idee, vielen Dank) beschäftigt, weil bei starkem Makro (Objektentfernung z.B. 1 bis 2 cm) die Tiefenschärfe erheblich geringer zu sein scheint als sie von der Funktion get_dof geliefert wird. De facto sind es bei meiner A710 in diesem Bereich bei Blende 2,8 und max. Weitwinkel nur ca. 1 mm. Das liegt wohl daran, dass übliche Tiefenschärfe-Berechnungen davon ausgehen, dass der Objektabstand deutlich größer als die Brennweite ist.
Jedenfalls habe ich dabei festgestellt, dass die Funktionen get_dof und get_hyp_dist nur unter ganz bestimmten Voraussetzungen den richtigen Wert zurückliefern.
Um herauszufinden, welche Voraussetzungen das sind, habe ich ein Skript geschrieben, das nacheinander die unten aufgelisteten Aktionen ausführt und dann jeweils die Werte von get_dof und get_hyp_dist ausliest:
1. Nach set_focus, dann shoot_half.
2. Nach set_focus, shoot_half und dann warten bis get_shooting=1 ist.
3. Direkt nach set_focus.
4. Nach 4. mit zusätzlicher Wartezeit 1 s.
5. Nach set_focus, dann shoot.
6. Nach 5. mit zusätzlicher Wartezeit 1 s.
Um prüfen zu können, ob die ausgegebenen Werte stimmen, wird mit den set_focus-Kommandos jeweils abwechselnd 100 mm und 500 mm eingestellt. Das Ganze wird einmal mit Blende 2,8 und einmal mit Blende 8,0 ausgeführt. Die Brennweite war jeweils auf 5,8 mm (max. Weitwinkel) eingestellt. Das entspricht in KB 35 mm, aber aus optischen Gründen ist DOF deutlich größer als bei 35 mm KB und HYP entsprechend geringer.

Der betreffende Teil des Skripts sieht so aus - die hier nicht gezeigte Funktion set_focusmode stellt den übergebenen Modus (normal, macro, manual, supermacro) ein:

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
set_focusmode("manual")
cls()
print_screen(1)     -- log to file
apertures={"2,8", "8,0"}                -- f values to be tested
foc_val={{500, 100}, {100, 500}}        -- focus settings to be tested
for k, aperture in pairs(apertures) do  -- for all f values
    if aperture == "2,8"    -- camera must be in AV mode
    then set_user_av96(9*32) else set_user_av96(18*32) end
    print("A=",aperture)
    for i=1, 2 do                       -- both sets of focal distances
        set_focus(foc_val[i][1])
        press "shoot_half"
        dof = get_dof() hyp = get_hyp_dist()
        print("shoot_half       ", foc_val[i][1], "mm D=",dof, "H=",hyp)
        set_focus(foc_val[i][2])
        press "shoot_half"
        repeat until get_shooting() == true -- wait until finished
        dof = get_dof() hyp = get_hyp_dist()
        print("shoot_half/ready ", foc_val[i][2], "mm D=",dof, "H=",hyp)
        sleep(1000)
        set_focus(foc_val[i][1])
        dof = get_dof() hyp = get_hyp_dist()
        print("set_focus        ", foc_val[i][1], "mm D=",dof, "H=",hyp)
        sleep(1000)
        dof = get_dof() hyp = get_hyp_dist()
        print("set_focus/sleep  ", foc_val[i][1], "mm D=",dof, "H=",hyp)
        sleep(1000)
        set_focus(foc_val[i][2])
        shoot()
        dof = get_dof() hyp = get_hyp_dist()
        print("set_focus/shoot  ", foc_val[i][2], "mm D=",dof, "H=",hyp)
        sleep(1000)
        dof = get_dof() hyp = get_hyp_dist()
        print("set_f/shoot/sleep", foc_val[i][2], "mm D=",dof, "H=",hyp)
        sleep(1000)
    end
end
set_focusmode("normal")     -- reset mode for normal operation
 
Erstellt in 0.008 Sekunden, mit GeSHi 1.0.8.9


Damit bekomme ich folgende Ausgabe:
Code: Alles auswählen
A= 2,8
shoot_half        500 mm D= 231 H= 2344
shoot_half/ready  100 mm D= 9 H= 2344
set_focus         500 mm D= 231 H= 2344
set_focus/sleep   500 mm D= 231 H= 2344
set_focus/shoot   100 mm D= 24 H= 841
set_f/shoot/sleep 100 mm D= 9 H= 2344
shoot_half        100 mm D= 9 H= 2344
shoot_half/ready  500 mm D= 231 H= 2344
set_focus         100 mm D= 9 H= 2344
set_focus/sleep   100 mm D= 9 H= 2344
set_focus/shoot   500 mm D= 966 H= 841
set_f/shoot/sleep 500 mm D= 231 H= 2344
A= 8,0
shoot_half        500 mm D= 231 H= 2344
shoot_half/ready  100 mm D= 24 H= 841
set_focus         500 mm D= 966 H= 841
set_focus/sleep   500 mm D= 966 H= 841
set_focus/shoot   100 mm D= 24 H= 841
set_f/shoot/sleep 100 mm D= 9 H= 2344
shoot_half        100 mm D= 9 H= 2344
shoot_half/ready  500 mm D= 966 H= 841
set_focus         100 mm D= 24 H= 841
set_focus/sleep   100 mm D= 24 H= 841
set_focus/shoot   500 mm D= 966 H= 841
set_f/shoot/sleep 500 mm D= 231 H= 2344
*** BEENDET ***

Ich habe mit einem Tiefenschärferechner mal nachgesehen, welche Werte denn richtig wären. Dabei kam folgendes heraus:

Für Blende 2,8 ergibt sich mit der DofMaster-Berechnung (Fokusentfernungen werden dort ab Linse gerechnet!!)
Code: Alles auswählen
Blende   Fokus ab CCD   Fokus ab Linse      DOF         HYP
2,8      100 mm         51  mm            2 mm      2,4 m
2,8      500 mm         451 mm            172 mm      2,4 m
8,0      100 mm         51 mm            5 mm      0,85 m   
8,0      500 mm         451 mm            659 mm      0,85 m            

Beim Vergleich mit den Kamera-Werten muss man berücksichtigen, dass die berechnete Tiefenschärfe stark vom vorgegebenen Streukreisdurchmesser abhängt, weitere Diskrepanzen gibt es, wie gesagt, bei geringem Objektabstand.
Aber wie auch immer, wenn ich einfach die Werte von der Kamera heraussuche, die am besten passen, dann sind das immer die in den Zeilen "shoot_half/ready".

In allen anderen Fällen ist anscheinend entweder die Blende oder die aktuelle Fokuseinstellung nicht korrekt berücksichtigt.
Um also korrekte Werte von den Funktionen get_dof und get_hyp_dist zu bekommen, reicht es also nicht, set_focus auszuführen, sondern man muss auch press "shoot_half" drücken und dann warten, bis get_shooting eine 1 bzw. true zurückliefert.
Zuletzt geändert von elektronikfreak am 13.12.2009, 20:13, insgesamt 3-mal geändert.
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 21:33
Wohnort: München

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon gehtnix » 10.12.2009, 01:52

Hi elektronikfreak,

Danke für die Blumen.

Das der DOF-Rechner nicht ganz OK ist, da brauchst Du nur mal Blende 2,8 und dann auf Brennweite 9,95mm zu gehen......das ist das gleiche Phänomen.....und das könnte auch mit dem "shoot_half/ready" behoben sein?

Ich hatte zwar mal vom Tisch aus mit voller Brennweite meinen Boden gestackt, da hatte ich diesen extrem kurzen DOF schon bemerkt. Habe das aber nicht weiter verfolgt weil wer stackt da ein Motiv? Der erhält ca.70 Bilder für CombinZP.

Jedoch bin ich da noch nicht auf die Idee gekommen das vorher mit shoot-half berechnen zu lassen. Siehe HDR-Hyper, da könnte das ja auch klappen? Das Skript könnte dann vielleicht sogar bei der IXUS gehen?

Dass der Hyperfocale aber in den Listen da nicht mit einem einheitlichen Wert bei gleicher Blende erscheint, das ist nicht OK :roll: . Das der dann auch noch wechselseitig jeweils die Werte der anderen Blende auflistet :-k

In der letzte Aufstellung müsste der HYP da nicht bei 8566.8 cm und 3031.1 cm liegen?
Brennweite bei 34,80mm (dofmaster.com). Die Brennweite wäre noch wissenswert in den Listen. Die beeinflusst auch ganz schön.

gruß gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon elektronikfreak » 11.12.2009, 20:29

gehtnix hat geschrieben:Hi elektronikfreak,

Das der DOF-Rechner nicht ganz OK ist, da brauchst Du nur mal Blende 2,8 und dann auf Brennweite 9,95mm zu gehen......das ist das gleiche Phänomen.....und das könnte auch mit dem "shoot_half/ready" behoben sein?

Möglich. Anscheinend werden nur dann der eingestellte Fokus und die Blende richtig berücksichtigt. Wieso speziell 9,95 mm, und bei welcher Kamera ist das so?
gehtnix hat geschrieben:Habe das aber nicht weiter verfolgt weil wer stackt da ein Motiv? Der erhält ca.70 Bilder für CombinZP.

Na ja, ganz so abwegig ist das auch wieder nicht. Ich habe eine Korrekturfunktion für get_dof implementiert, um die Abnahme der Tiefenschärfe im Makrobereich zu berücksichtigen, was natürlich zu mehr Bildern führt. Wenn ich damit meinen Taschenrechner stacke (Entfernungsbereich 1 bis 16 cm ab Frontlinse), brauche ich bei Blende 2,8 zwar 34 Bilder, aber bei Blende 8,0 reichen 14 Bilder. Wenn der Bereich länger wird, sind es auch nicht viel mehr Bilder, weil dann die DOF schon ziemlich rasant zunimmt. Hier das Bild mit Blende 8 (das andere sieht nicht viel anders aus) - wie man sieht, müsste der Taschenrechner mal entstaubt werden :oops:
BildDie "0"-Taste war hier knapp 10 mm vor der Frontlinse, die letzte Ecke des Rechners etwa 17 cm weg.
gehtnix hat geschrieben:In der letzte Aufstellung müsste der HYP da nicht bei 8566.8 cm und 3031.1 cm liegen? Brennweite bei 34,80mm (dofmaster.com). Die Brennweite wäre noch wissenswert in den Listen. Die beeinflusst auch ganz schön.
Meinst du wirklich cm oder mm? Sonst wären es ja 86 m bzw. 30 m, das wäre ja schrecklich viel für Weitwinkel. Die Brennweite war bei mir 5,8 mm (hab's im ursprünglichen Beitrag ergänzt), da komme ich mit einem Streukreisdurchmesser von 5 µm auf die genannten Werte. Zwar entsprechen die 5,8 mm Brennweite in KB 35 mm, aber bei der Kompakten ist die Tiefenschärfe bei der gleichen Blende erheblich größer als bei KB. Also ist HYP entsprechend kleiner. Auch mit Dofmaster.com komme ich für die A710IS auf 2,38 m bei Bl. 2,8 und 0,85 m bei Bl. 8. Für längere Brennweiten wird DOF natürlich geringer und HYP größer.

Mal eine generelle Frage: gibt's irgendwo eine Doku zu solchen Features wie get_dof, get_focus etc? Es gibt nämlich noch mehr Fallstricke, z.B. habe ich festgestellt, dass die Einstellung des CHDK-DOF-Rechners "Motiventfernung von Linse" auch das Ergebnis von get_focus beeinflusst.

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

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon gehtnix » 11.12.2009, 23:20

elektronikfreak hat geschrieben:Wieso speziell 9,95 mm, und bei welcher Kamera ist das so?
Einfach ausprobieren. Dann wirst Du schon sehen was die Blende macht. Der DOF wird aber nicht nachgeführt. Bei HDR-Hyper findest Du mehr darüber.

elektronikfreak hat geschrieben:Meinst du wirklich cm oder mm? Sonst wären es ja 86 m bzw. 30 m
Schon so wie es da steht, direkt vom DOFmaster kopiert. Habe deswegen ja die Brennweite extra dazu geschrieben. Bei 5.8mm stimmt der HYP aber der DOF geht dann auf 7,9mm hoch und nicht 2mm. Im DOFmaster mal mit den Werten nach unten scrollen. Da gibt es noch eine Grafik dazu.

elektronikfreak hat geschrieben:"Motiventfernung von Linse" auch das Ergebnis von get_focus beeinflusst.
Diese Option gibt es erst seit Kurzem. Die ursprüglichen Angaben bezogen sich auf den Abstand vom CCD-Chip bis zum Motiv. Mit der Option wird das nur umgerechnet auf die Angabe von Canon. Bei meiner A610 beginnt der Fokus dann 10mm vor der Linse bei 0mm. Vorher waren es 62mm. Ergo ergibt get_focus 0 oder 62mm.

Ob sich das allerdings auch im DOF- oder HYP-Wert niederschlägt, da habe ich auch keine Ahnung.

Spezielle Doku ist mir nicht bekannt, CHDK-Handbuch von msl.

gruß gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon elektronikfreak » 12.12.2009, 13:50

gehtnix hat geschrieben:Einfach ausprobieren. Dann wirst Du schon sehen was die Blende macht. Der DOF wird aber nicht nachgeführt.

Hab's ausprobiert. 9,95 mm kann ich zwar nicht einstellen, also habe ich 9,9 genommen.
Auch mit shoot_half/ready sind die Werte für DOF und HYP unabhängig von der Blende, also falsch.
gehtnix hat geschrieben:...Bei 5.8mm stimmt der HYP aber der DOF geht dann auf 7,9mm hoch und nicht 2mm.
Kann ich nicht nachvollziehen. Ich benutze den "Online Depth of Field Calculator", wähle die A710 IS, Brennweite 5,8 mm und bekomme immer vernünftige Werte für DOF und HYP.
gehtnix hat geschrieben:Die ursprüglichen Angaben bezogen sich auf den Abstand vom CCD-Chip bis zum Motiv. Mit der Option wird das nur umgerechnet auf die Angabe von Canon.

Das ist schon klar. Aber so wie das jetzt realisiert ist, hat eine Änderung dieser Einstellung zur Folge, dass vorhandene Skripte nicht mehr richtig funktionieren, da get_focus plötzlich andere Werte zurückliefert. Einstellungen im OSD-Menü sollten sich nur auf die Anzeige auf dem Bildschirm auswirken und nicht auf die Abarbeitung von Skripten.
gehtnix hat geschrieben:Spezielle Doku ist mir nicht bekannt, CHDK-Handbuch von msl.

Das Handbuch ist in dieser Hinsicht leider etwas spartanisch, die ganze Doku zu get_dof lautet:
get_dof Info DOF Angabe der Schärfentiefe in mm

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

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon gehtnix » 12.12.2009, 18:14

elektronikfreak hat geschrieben:9,95 mm kann ich zwar nicht einstellen
Einstellen kannst Du schon, es werden Dir aber nur die 9,9 angezeigt.
Guckst Du hier, Zeile 13

elektronikfreak hat geschrieben:A710 IS, Brennweite 5,8 mm und bekomme immer vernünftige Werte für DOF und HYP
Dann stimmen die Daten der letzte Liste nicht.
    Blende Fokus Objekt ab Linse DOF HYP
    2,8 100 mm 51 mm 2 mm 2,4 m
Bei 100mm sind es 0.79 cm bei 50mm 0.19 cm.

elektronikfreak hat geschrieben:Aber so wie das jetzt realisiert ist, hat eine Änderung dieser Einstellung zur Folge, dass vorhandene Skripte nicht mehr richtig funktionieren
Einfach die Einstellung belassen so wie bisher. Bei Susi2Stack könnte man den kleinsten Fokus auf 0 setzen.

elektronikfreak hat geschrieben:da get_focus plötzlich andere Werte zurückliefert
Jetzt begebe ich mich auf dünnes Eis. Der DOF muß gleich bleiben! Dafür haben wir ja die Brennweite die hier verrechnet wird.
Bei Brennweite 34.8, Blende 2.8 und 50mm Motiv hast Du DOF=0

gruß gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon elektronikfreak » 12.12.2009, 19:14

gehtnix hat geschrieben:Dann stimmen die Daten der letzte Liste nicht.
    Blende Fokus Objekt ab Linse DOF HYP
    2,8 100 mm 51 mm 2 mm 2,4 m
Bei 100mm sind es 0.79 cm bei 50mm 0.19 cm.

Nein, die Werte stimmen. 100 mm entspricht 51 mm ab Linse, und das gibt im Dofmaster bei Bl. 2,8 die Werte DOF=0,19 cm und HYP=238,5 cm (deine Werte für 50 mm). Habe ich gerundet auf 2 mm bzw. 2,4 m. Der andere Wert war 500 mm, nicht 50 mm. Das ergibt auch wieder die Werte in der Liste.
gehtnix hat geschrieben:Einfach die Einstellung belassen so wie bisher.
Ist mir klar. Ich wollte nur sagen, dass ich es ungünstig finde, wenn solche Einstellungen unerwartete Nebeneffekte haben.
gehtnix hat geschrieben:
elektronikfreak hat geschrieben:da get_focus plötzlich andere Werte zurückliefert
Jetzt begebe ich mich auf dünnes Eis. Der DOF muß gleich bleiben! Dafür haben wir ja die Brennweite die hier verrechnet wird.
Bei Brennweite 34.8, Blende 2.8 und 50mm Motiv hast Du DOF=0

Falsche Party, ich rede von get_focus, nicht von get_dof!
Außerdem, bei 34,8 mm Brennweite kann ich sowieso nicht auf 50 mm fokussieren. Deshalb ist's mir auch egal, wenn dann DOF gegen 0 geht.

Aber wie auch immer. Nachdem irgendwie nicht so richtig klar ist, wann get_dof und get_hyp_dist nun richtige Werte liefern und wann nicht, werde ich erst mal eine eigene DOF/HYP-Berechnung in das Skript integrieren. Die Gleichungen stehen ja auf der DofMaster-Seite, und wenn man die Variablen sinnvoll skaliert, sollte das wohl kein Problem sein.
Wenn ich es getestet habe, stelle ich das mal hier ein, vielleicht hat ja mal einer von den CHDK-Entwicklern Lust, die beiden Funktionen zu reparieren.

Gruß

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

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon gehtnix » 12.12.2009, 19:58

elektronikfreak hat geschrieben:100 mm entspricht 51 mm ab Linse, und das gibt im Dofmaster bei Bl. 2,8 die Werte DOF=0,19 cm und HYP=238,5 cm
Hier die DOF-Werte, Blende und Entfernung bleiben gleich. Nur die Brennweite wird geändert.
Bild

Bild
Entweder hast Du den DOF bei 2mm mit Brennweite 34.8 oder den HYP bei HYP=238,5 cm mit Brennweite 5.8. Das irritiert mich in Deiner Aufstellung

elektronikfreak hat geschrieben:dass ich es ungünstig finde, wenn solche Einstellungen unerwartete Nebeneffekte haben.
Da stimme ich Dir zu.

elektronikfreak hat geschrieben:Falsche Party, ich rede von get_focus
Scho scho, aber der DOF darf sich nicht verändert! Der DOF muß aber bei beiden Einstellungen immer gleich bleiben. get_focus liefert einmal 100mm und mit der geänderten Einstellung dann nur 50mm. Distanz Kamera zu Motiv ist aber gleich geblieben.

Gruß gehntix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon elektronikfreak » 12.12.2009, 21:03

gehtnix hat geschrieben:Entweder hast Du den DOF bei 2mm mit Brennweite 34.8 oder den HYP bei HYP=238,5 cm mit Brennweite 5.8. Das irritiert mich in Deiner Aufstellung

Mit Brennweite 34,8 mm habe ich doch gar keine Versuche gemacht. Alle Werte in der Aufstellung gelten für Brennweite 5,8 mm und Blende 2,8 oder 8,0.
gehtnix hat geschrieben:Scho scho, aber der DOF darf sich nicht verändert! Der DOF muß aber bei beiden Einstellungen immer gleich bleiben.

Da sind wir uns vollkommen einig. Ob es auch wirklich so ist, habe ich nicht ausprobiert.

Aber was anderes: ich habe die Geschichte mit Brennweite 9,9 mm nochmal probiert. Beim ersten Mal hat es nicht funktioniert, weil mein Testskript da Blende 2,8 einstellen wollte, was bei der Brennweite nicht möglich ist, da muss man auf Bl. 3,2 gehen.
Dann bekomme ich folgende Werte:
Code: Alles auswählen
A= 3,2
shoot_half/ready  500 mm D= 82 H= 6246
A= 8,0
shoot_half/ready  500 mm D= 214 H= 2493
*** BEENDET ***

DofMaster liefert für 9,9 mm Brennweite:
A=3,2 Subject distance=45 cm: DOF=6,45 cm, HYP=6,184 m
A=8,0 Subject distance=45 cm: DOF=16,7 cm, HYP=2,46 m
Die Diskrepanz bei HYP ist der Abstand zwischen Linse und Chip, aber warum stimmt DOF nicht? Ist zwar nicht völlig daneben, aber eben auch nicht ganz korrekt.

Auf jeden Fall sieht es nun doch so aus, als ob shoot_half/ready die richtige Maßnahme ist. Und zwar, weil erst dann die eingestellte Blende wirksam wird. Also stimmt auch erst dann die DOF/HYP-Berechnung. Das gilt natürlich für die Anzeige des DOF-Rechners genauso. Auch hier muss man den Auslöser halb drücken, damit die richtigen Werte angezeigt werden. Das sind dann genau die gleichen Werte, die auch mein Testskript ausgibt.

Gruß

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

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon gehtnix » 12.12.2009, 23:21

elektronikfreak hat geschrieben:Ich habe mit einem Tiefenschärferechner mal nachgesehen, welche Werte denn richtig wären. Dabei kam folgendes heraus:

Für Blende 2,8 ergibt sich bei 100 mm Fokus (ca. 50 mm Objektabstand von der Linse
.............
Alle Werte in der Aufstellung gelten für Brennweite 5,8 mm und Blende 2,8 oder 8,0.
Wo kommen dann die 2mm in der letzten Aufstellung her??? Siehe die erste Grafik mit Blende 2.8 und 5.8mm da steht 0.79cm!

elektronikfreak hat geschrieben:ich habe die Geschichte mit Brennweite 9,9 mm nochmal probiert
Lade Dir den Schärfentiefe-Rechner von HDR-Hyper. Deine Kamera auswählen und dann die Tabelle nach rechts scrollen. Da findest Du die Tabelle mit den Werten wann die Blende umschaltet.

elektronikfreak hat geschrieben:Die Diskrepanz bei HYP ist der Abstand zwischen Linse und Chip, aber warum stimmt DOF nicht?
Kann sein, muß aber nicht.
Die Kamera kann nicht jeden mm exakt einstellen! Das trifft besonders zu je größer die Distanz wird. Lass das mal laufen. Kannst ja bis "to 1000" und "step 100" verändern. Da wirst Du sehen das es Differenzen gibt.

Also, wenn Du auf 500 setzt heißt das noch nicht dass das Objektiv auch wirklich auf 500 steht. Dem DOFmaster ist das natürlich egal.

elektronikfreak hat geschrieben:Auf jeden Fall sieht es nun doch so aus, als ob shoot_half/ready die richtige Maßnahme ist. Und zwar, weil erst dann die eingestellte Blende wirksam wird.
Ist es vielleicht auch so wie mit dem Datum einer Config-Datei? Diese erhält das aktuelle Datum erst nach dem ersten Foto.
Möglicherweise wird bei Susi2Stack auch mit dem ersten Fokusholen (shoot_half/ready) der DOF aktualisiert und von da an stimmt alles Weitere??

Gruß gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon elektronikfreak » 13.12.2009, 00:50

gehtnix hat geschrieben:Wo kommen dann die 2mm in der letzten Aufstellung her??? Siehe die erste Grafik mit Blende 2.8 und 5.8mm da steht 0.79cm!

Nein. Also nochmal: In der Aufstellung stehen die Fokus-Entfernungen ab Chip, in der Grafik die ab Linse.
Also: Brennweite 5,8 mm, Blende 2,8, Fokus-Entfernung 100 mm ab Chip ergibt 51 mm ab Linse ergibt DOF=0,19 cm, wurden von mir aufgerundet auf 0,2 cm = 2 mm. Diese 2 mm stehen in der Aufstellung.
gehtnix hat geschrieben:Lade Dir den Schärfentiefe-Rechner von HDR-Hyper. Deine Kamera auswählen und dann die Tabelle nach rechts scrollen. Da findest Du die Tabelle mit den Werten wann die Blende umschaltet.
Mit HDR habe ich mich nicht beschäftigt, und das habe ich auch im Moment nicht vor. Für meine Zwecke (=DOF-Stacking) gibt es überhaupt kein Problem mehr, egal bei welcher Brennweite.
gehtnix hat geschrieben:Die Kamera kann nicht jeden mm exakt einstellen! Das trifft besonders zu je größer die Distanz wird.
Ist mir klar, das kann aber hier nicht das Problem sein. get_dof weicht um so mehr von DofMaster ab, je kleiner die Distanz ist. Bei geringer Distanz sind die Werte von get_dof zu groß. Das sieht man auch daran, dass mit Susi2Stack bei geringen Entfernungen unscharfe Bereiche zwischen den Bildern bleiben.
gehtnix hat geschrieben:Dem DOFmaster ist das natürlich egal.

Mir auch, denn ob die Kamera den Fokus auf 500, 501 oder 499 mm einstellt, spielt nun wirklich keine Rolle.
gehtnix hat geschrieben:Möglicherweise wird bei Susi2Stack auch mit dem ersten Fokusholen (shoot_half/ready) der DOF aktualisiert und von da an stimmt alles Weitere??
Keine Ahnung, ich habe eher den Eindruck, dass das daran liegt, dass die Blende erst dann eingestellt wird.

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

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon gehtnix » 13.12.2009, 03:57

elektronikfreak hat geschrieben:Brennweite 5,8 mm, Blende 2,8, Fokus-Entfernung 100 mm ab Chip ergibt 51 mm ab Linse ergibt DOF=0,19 cm, wurden von mir aufgerundet auf 0,2 cm = 2 mm.
Wie kommst Du drauf dass die Fokus-Entfernung ab Linse gemessen wird? In der EXIF steht als Fokus, bei einem Motiv 10mm vor Linse, 70mm!
Nach Deiner Rechnung müssten dann verschiedene DOF-Werte alleine von der Bauart der Kamera (Kleinster Fokus) zu erwarten sein. In den DOF-Formeln müsste das ja auch seinen Niederschlag finden.

elektronikfreak hat geschrieben:ich habe die Geschichte mit Brennweite 9,9 mm nochmal probiert......Mit HDR habe ich mich nicht beschäftigt
Mir ging es nicht um HDR sondern um die Werte wo die Kamera die Blende selber umschaltet. Mir war, Du meinst das Problem tritt nur bei den erwähnten 9.95mm auf.

elektronikfreak hat geschrieben:Keine Ahnung, ich habe eher den Eindruck, dass das daran liegt, dass die Blende erst dann eingestellt wird.
Die Blende ist ja vorher schon angewählt. Aber erst nach dem half_shoot beginnt CHDK erstmalig zu rechnen.

gruß gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon elektronikfreak » 13.12.2009, 13:29

gehtnix hat geschrieben:Wie kommst Du drauf dass die Fokus-Entfernung ab Linse gemessen wird?

Weil das hier bei DofMaster (ganz unten auf der Seite) so beschrieben ist, und das erscheint mir auch sinnvoll. Die Werte in meiner letzten Aufstellung (in der ja auch der Objektabstand ab Linse aufgeführt ist), stammen ja auch von DofMaster, nicht von der Kamera.
gehtnix hat geschrieben:In den DOF-Formeln müsste das ja auch seinen Niederschlag finden.

Ja, muss es, und zwar wenn der Fokus ab CCD gemessen wird. Dann muss man die Entfernung zwischen Linse und CCD nämlich vom Fokus abziehen, damit die Formeln stimmen. Sonst würde ja die Bauart des Objektivs in die Rechnung eingehen. Immerhin ist bei der A710 der Abstand der Frontlinse zum CCD fast 5 cm, und das bei einer Brennweite von nur 5,8 mm. Diese 5 cm kommen doch nicht der Tiefenschärfe zugute! Sonst könnte man ja eine künstlich verlängerte Optik konstruieren mit auch nur 5,8 mm Brennweite und, sagen wir mal, intern 20 cm parallelem Strahlengang. Dann ist die Linse 25 cm vom CCD weg, und schon hat man eine gigantische Makro-Tiefenschärfe? Das würde die gesamte Optik revolutionieren!
Wenn get_dof diese 5 cm nicht abzieht, dann verstehe ich auch, warum die Funktion im Makrobereich immer viel zu große Werte zurückliefert.
gehtnix hat geschrieben:Die Blende ist ja vorher schon angewählt.
Angewählt schon, aber nicht eingestellt. Das kannst du sehen, wenn unter OSD-Einstellungen - Diverse Werte - Zeige 'reale' Blende sowie Zeige diverse Werte = Always aktivierst. Dann stellst du am Wählrad Av-Modus ein und stellst mal Blende 2,8 oder 8,0 ein. Dann wirst du sehen, dass die tatsächliche Blende erst mal nur von der Helligkeit abhängt und gar nicht vom eingestellten Wert. Die Kamera wählt die Blende so, dass eine vernünftige Bilddarstellung auf dem Display möglich ist. Wenn du die Kamera bewegst, so dass mal helle und mal dunkle Objekte im Bild sind, ändert sich die reale Blende, man hört ja auch das leise Klicken des Blendenantriebs.
Erst wenn du den Auslöser halb drückst, wird der vorgewählte Blendenwert tatsächlich eingestellt.
Ich nehme an, dass get_dof mit der 'realen' Blende arbeitet. Deshalb liefert es ebenfalls erst dann den richtigen Wert, wenn man den Auslöser halb drückt.

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

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon gehtnix » 13.12.2009, 16:53

elektronikfreak hat geschrieben:Weil das hier bei DofMaster (ganz unten auf der Seite) so beschrieben ist
:oops: das habe ich aber sowas von voll überlesen!
In Susi2Stack wird automatisch bei Macro oder Supermacro der von CHDK ermittelte DOF um 50% reduziert 8-[

Kannst aber dann die 100mm aus der Aufstellung raus nehmen. Die verwirrt nur, siehe mich.

Da muß ich ja das PDF zu Susi2Stack mal umbauen. Habe aber gerade sowas von Lust dazu :-`

gruß gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Re: get_dof und get_hyp_dist richtig anwenden

Beitragvon elektronikfreak » 13.12.2009, 20:15

gehtnix hat geschrieben:Habe aber gerade sowas von Lust dazu

Doku ist doch immer der spannendste Teil :roll:
A710IS, EOS500D
elektronikfreak
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Registriert: 31.03.2009, 21:33
Wohnort: München


Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast