Wie kann man die Schärfentiefe eines Fotos anhand von EXIF-Tags ermitteln oder berechnen?
-
22-07-2019 - |
Frage
Ich möchte die Schärfentiefe eines Fotos wissen, vorzugsweise in cm oder m.
Ich weiß, dass wir die Kameraeinstellung durch Lesen der EXIF-Tags ermitteln können, aber gibt es einen Tag, der uns direkt die Schärfentiefe angibt?Oder wie können wir es aus einigen EXIF-Tags berechnen?
Beispiele wären willkommen.Danke!
Lösung
Calculating Schärfentiefe:
t = A * (S / 1440) · (D - F) / F ^ 2
Die Nahfokus distance = D / (1 + t)
Der Fernfokusabstand = D / (1-t)
Und die volle Tiefe des Feldes ist der Unterschied zwischen diesen.
Die Variablen sind:
A = Blendenwert (F-Zahl)
S = Kamerasensor oder Filmebene Diagonalgröße in mm
D = Fokusabstand in mm
F = Brennweite des Objektivs in mm
Natürlich ist die Schärfe des Fokus ist subjektiv und wird eingestellt, indem die Konstante in der Berechnung des Zerstreuungskreises (CoC) zu verändern. Hier habe ich verwendet CoC = S / 1440, die ein Wert ist, der üblicherweise verwendet wird.
Andere Tipps
Ich vermute hier, also würde ich es begrüßen, wenn jemand anderes kann dies bestätigen:
Ich glaube, man kann nicht programmatisch die Schärfentiefe der verfügbaren EXIF-Daten bestimmen - Sie die f-stop wissen müssen, Brennweite, und das ist entscheidend: das Thema Abstand
. Die Felder FNumber
und Focal Length
geben Ihnen die ersten beiden. Die dritte wäre normalerweise nicht möglich sein, mit der Kamera zu bestimmen. Sie würden einen Mechanismus benötigen zur Entfernungsmessung -. Einige zusätzliche Ausrüstung für die Kamera oder einige bekannte Werte für die Triangulation
Diese Webseite http://www.dofmaster.com/dofjs.html hat eine einfache Erklärung dessen, was in der Tiefe von Feldberechnungen beteiligt ist:
Ich bin auf der Suche nach Dof-Berechnungen auf die oben genannten Formeln gestoßen und habe diese gefunden.
Nur ein paar Punkte:
Die Werte von t müssen im Programm überprüft werden.Wenn
t = 1
, dann sind die BrennweitenD/2
und Unendlich, wobei D tatsächlich die Hyperfokalentfernung ist(hfd)
.Dies lässt sich leicht beweisen und ergibt den HFD als(f**2)/(coc*Fnumber)
etwa.Wenn t größer als 1 ist, sind Ihre Antworten negativ und das Ergebnis ist bedeutungslos