¿Cómo saber o calcular la profundidad de campo de una foto a partir de etiquetas EXIF?
-
22-07-2019 - |
Pregunta
Quiero saber la profundidad de campo de una foto, preferiblemente en cm o m.
Sé que podemos conocer la configuración de la cámara leyendo las etiquetas EXIF, pero ¿hay alguna etiqueta que nos indique directamente la profundidad de campo? ¿O cómo podemos calcularlo a partir de algunas etiquetas EXIF?
Se agradecerían los ejemplos. Gracias!
Solución
Cálculo de la profundidad de campo:
t = A * (S / 1440) * (D - F) / F ^ 2
La distancia focal cercana = D / (1 + t)
La distancia de enfoque lejana = D / (1-t)
Y la profundidad de campo completa es la diferencia entre estos.
Las variables son:
A = apertura de la lente (número F)
S = tamaño de la diagonal del sensor de la cámara o del plano de la película en mm
D = distancia de enfoque en mm
F = longitud focal de la lente en mm
Por supuesto, la nitidez del enfoque es subjetiva y se ajusta cambiando la constante en el cálculo del círculo de confusión (CoC). Aquí, he usado CoC = S / 1440, que es un valor que se usa comúnmente.
Otros consejos
Estoy adivinando aquí, así que agradecería si alguien más puede confirmar esto:
Creo que no puede determinar programáticamente la profundidad de campo a partir de los datos EXIF ??disponibles; debe conocer el f-stop, la distancia focal, y esto es crucial: la distancia del sujeto.
Los campos FNumber
y Focal Length
le darán los dos primeros. El tercero normalmente no sería posible determinarlo con la cámara. Necesitaría algún mecanismo para el rango: algún equipo adicional para la cámara o algunos valores conocidos para la triangulación.
Esta página web http://www.dofmaster.com/dofjs.html tiene Una explicación directa de lo que implica los cálculos de profundidad de campo:
Encontré las fórmulas anteriores mientras buscaba cálculos dof y encontré estos.
Solo un par de puntos:
-
Los valores de t deben verificarse en el programa. Si
t = 1
, las distancias focales sonD / 2
e infinito, en cuyo caso D es en realidad la distancia hiperfocal(hfd)
. Esto se prueba fácilmente y proporciona el hfd como(f ** 2) / (coc * Fnumber)
aproximadamente. -
Si t es mayor que 1, sus respuestas serán negativas y este es un resultado sin sentido