Domanda

Voglio conoscere la profondità di campo di una foto, preferibilmente in cm o m.

So che possiamo conoscere le impostazioni della fotocamera leggendo i tag EXIF, ma esiste un tag che ci dice direttamente la profondità di campo? O come possiamo calcolarlo da alcuni tag EXIF?

Gli esempi sarebbero apprezzati. Grazie!

È stato utile?

Soluzione

Calcolo della profondità di campo:

t = A * (S / 1440) * (D - F) / F ^ 2

La distanza di messa a fuoco vicina = D / (1 + t)

Distanza focale lontana = D / (1-t)

E la profondità di campo è la differenza tra questi.

Le variabili sono:

A = apertura dell'obiettivo (numero F)

S = diagonale del sensore della videocamera o del piano della pellicola in mm

D = distanza di messa a fuoco in mm

F = lunghezza focale dell'obiettivo in mm

Naturalmente, la nitidezza della messa a fuoco è soggettiva e viene regolata modificando la costante nel calcolo del cerchio di confusione (CoC). Qui, ho usato CoC = S / 1440 che è un valore comunemente usato.

Altri suggerimenti

Sto indovinando qui, quindi apprezzerei se qualcun altro possa confermarlo:

Credo che non sia possibile determinare a livello di programmazione la profondità di campo dai dati EXIF ??disponibili: è necessario conoscere la f-stop, la lunghezza focale e questo è fondamentale: la distanza del soggetto.

I campi FNumber e Focal ti daranno i primi due. Il terzo non sarebbe normalmente possibile determinare con la fotocamera. Avresti bisogno di un meccanismo per la gamma: alcune attrezzature extra per la fotocamera o alcuni valori noti per la triangolazione.

Questa pagina web http://www.dofmaster.com/dofjs.html ha una spiegazione diretta di ciò che è coinvolto nei calcoli della profondità di campo:

Mi sono imbattuto nelle formule sopra mentre cercavo i calcoli di dof e li ho trovati.

Solo un paio di punti:

  1. I valori di t devono essere controllati nel programma. Se t = 1 , le distanze focali sono D / 2 e l'infinito nel qual caso D è in realtà la distanza iperfocale (hfd) . Questo è facilmente dimostrato e fornisce l'hfd come (f ** 2) / (coc * Fnumber) approssimativamente.

  2. Se t è maggiore di 1 le tue risposte saranno negative e questo è un risultato insignificante

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top