¿Existe una fórmula para calcular DOF?

16

Tengo bastante claro que el DOF depende de:

  1. Longitud focal
  2. Abertura
  3. Distancia del sujeto
  4. Tamaño del sensor
    y más (como se señala en el comentario).

Pero la pregunta aquí es: ¿Hay alguna fórmula que relacione todos estos factores con DOF? Dados estos valores, ¿es posible calcular con precisión la profundidad de campo?

vivek_jonam
fuente
1
Hay dos cosas más a considerar: (5) el tamaño de la imagen final; y (6) si le preocupa la "zona de nitidez aceptable" cuando se tienen en cuenta los otros cinco factores, o la "zona de borrosidad suficiente".

Respuestas:

17

La profundidad de campo depende de dos factores, aumento y número f.

La distancia focal, la distancia del sujeto, el tamaño y el círculo de confusión (el radio en el que se hace visible el desenfoque) determinan conjuntamente el aumento.

La profundidad de campo no depende de la lente o el diseño de la cámara que no sean las variables en la fórmula, por lo que existen fórmulas generales para calcular la profundidad de campo para todas las cámaras y lentes. No los tengo todos comprometidos con la memoria, así que solo estaría copiando y pegando desde Wikipedia, así que en su lugar dejaré este enlace:

Una mejor respuesta a su pregunta sería pasar por la derivación de las fórmulas a partir de los primeros principios, algo que he querido hacer durante un tiempo pero que no he tenido tiempo. Si alguien quiere ser voluntario, les daré un voto positivo;)

Matt Grum
fuente
15

Querías las matemáticas, así que aquí va:

Necesita conocer el CoC de su cámara, los sensores de tamaño Canon APS-C este número es 0.018, para Nikon APS-C 0.019, para sensores de fotograma completo y película de 35 mm el número es 0.029.

La fórmula es para completar:

CoC (mm) = viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25

Otra forma de hacerlo es la fórmula de Zeiss :

c = d/1730

Donde d es el tamaño diagonal del sensor, y c es el CoC máximo aceptable. Esto produce números ligeramente diferentes.

Primero debe calcular la distancia hiperfocal para su lente y cámara (esta fórmula no es precisa con distancias cercanas a la distancia focal, por ejemplo, macro extrema):

HyperFocal[mm] = (FocalLength * FocalLength) / (Aperture * CoC)

p.ej:

50mm lens @ f/1.4 on a full frame:      61576mm (201.7 feet)
50mm lens @ f/2.8 on a full frame:      30788mm (101 feet)
50mm lens @ f/1.4 on a Canon APS frame: 99206mm (325.4 feet)
50mm lens @ f/2.8 on a Canon APS frame: 49600mm (162.7 feet)

A continuación, debe calcular el punto cercano que es la distancia más cercana que estará enfocada dada la distancia entre la cámara y el sujeto:

NearPoint[mm] = (HyperFocal * distance) / (HyperFocal + (distance – focal))

p.ej:

50mm lens @ f/1.4 on a full frame with a subject at 1m distance: 0.984m (~16mm in front of target)
50mm lens @ f/1.4 on a full frame with a subject at 3m distance: 2.862m (~137mm in front of target)
50mm lens @ f/2.8 on a full frame with a subject at 1m distance: 0.970m (~30mm in front of target)
50mm lens @ f/2.8 on a full frame with a subject at 3m distance: 2.737m (~263mm in front of target)

50mm lens @ f/1.4 on a Canon APS frame with a subject at 1m distance: 0.990m (~10mm in front of target)
50mm lens @ f/1.4 on a Canon APS frame with a subject at 3m distance: 2.913m (~86mm in front of target)
50mm lens @ f/2.8 on a Canon APS frame with a subject at 1m distance: 0.981m (~19mm in front of target)
50mm lens @ f/2.8 on a Canon APS frame with a subject at 3m distance: 2.831m (~168mm in front of target)

A continuación, debe calcular el punto lejano que es la distancia más lejana que estará enfocada dada la distancia entre la cámara y el sujeto:

FarPoint[mm] = (HyperFocal * distance) / (HyperFocal – (distance – focal))

p.ej:

50mm lens @ f/1.4 on a full frame with a subject at 1m distance: 1.015m (~15mm behind of target)
50mm lens @ f/1.4 on a full frame with a subject at 3m distance: 3.150m (~150mm behind of target)
50mm lens @ f/2.8 on a full frame with a subject at 1m distance: 1.031m (~31mm behind of target)
50mm lens @ f/2.8 on a full frame with a subject at 3m distance: 3.317m (~317mm behind of target)

50mm lens @ f/1.4 on a Canon APS frame with a subject at 1m distance: 1.009m (~9mm behind of target)
50mm lens @ f/1.4 on a Canon APS frame with a subject at 3m distance: 3.091m (~91mm behind of target)
50mm lens @ f/2.8 on a Canon APS frame with a subject at 1m distance: 1.019m (~19mm behind of target)
50mm lens @ f/2.8 on a Canon APS frame with a subject at 3m distance: 3.189m (~189mm behind of target)

Ahora puede calcular la distancia focal total:

TotalDoF = FarPoint - NearPoint

p.ej:

50mm lens @ f/1.4 on a full frame with a subject at 1m distance:  31mm
50mm lens @ f/1.4 on a full frame with a subject at 3m distance: 228mm
50mm lens @ f/2.8 on a full frame with a subject at 1m distance:  61mm
50mm lens @ f/2.8 on a full frame with a subject at 3m distance: 580mm

50mm lens @ f/1.4 on a Canon APS frame with a subject at 1m distance:  19mm
50mm lens @ f/1.4 on a Canon APS frame with a subject at 3m distance: 178mm
50mm lens @ f/2.8 on a Canon APS frame with a subject at 1m distance:  38mm
50mm lens @ f/2.8 on a Canon APS frame with a subject at 3m distance: 358mm

Entonces, la fórmula completa con CoC e HyperFocal precalculada:

TotalDoF[mm] = ((HyperFocal * distance) / (HyperFocal – (distance – focal))) -(HyperFocal * distance) / (HyperFocal + (distance – focal))

O simplificado:

TotalDoF[mm] = (2 * HyperFocal * distance * (distance - focal)) / (( HyperFocal + distance - focal) * (HyperFocal + focal - distance))

Con CoC precalulado: he intentado simplificar las siguientes ecuaciones con las siguientes sustituciones: a = distancia de visualización (cm) b = resolución deseada de la imagen final (lp / mm) para una distancia de visualización de 25 cm c = ampliación d = Longitud focal e = apertura f = distancia X = CoC

TotalDoF = ((((d * d) / (e * X)) * f) / (((d * d) / (e * X)) – (f – d))) - ((((d * d) / (e * X)) * f) / (((d * d) / (e * X)) + (f – d)))

Simplificado:

TotalDoF = (2*X*d^2*f*e(d-f))/((d^2 - X*d*e + X*f*e)*(d^2 + X*d*e - X*f*e))

Aún más simplificado con WolframAlpha:

TotalDoF = (2 * d^2 * e * (d - f) * f * X)/(d^4 - e^2 * (d - f)^2 * X^2)

O si nada se calcula previamente, obtienes este monstruo, que no se puede usar:

TotalDoF = ((FocalLength * FocalLength) / (Aperture * (viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25)) * distance) / ((FocalLength * FocalLength) / (Aperture * (viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25)) – (distance – focal)) - ((FocalLength * FocalLength) / (Aperture * (viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25)) * distance) / ((FocalLength * FocalLength) / (Aperture * (viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25)) + (distance – focal))

Simplificado:

(50*a*b*c*d^2*f*e*(d-f))/((25*b*c*d^2 - a*d*e + a*f*e)*(25*b*c*d^2 + a*d*e - a*f*e)

Así que básicamente use CoC recalculado e HyperFocal :)

psarossy
fuente
@mattdm ¿esto responde a su pregunta con respecto a la inclusión de las fórmulas?
psarossy
Sí, muy útil, gracias. (Lo siento, olvidé asignar la recompensa.)
mattdm
8

Si desea ver una implementación práctica de las fórmulas de profundidad de campo, puede consultar esta Calculadora de profundidad de campo en línea . La fuente de la página HTML vinculada tiene todas las fórmulas implementadas en Javascript.

Miguel
fuente
4

Sí, hay fórmulas Puede encontrar uno en http://www.dofmaster.com/equations.html . Estas fórmulas se utilizan en esta calculadora, también explica la profundidad de campo con más detalle. He usado este sitio varias veces y he encontrado que es razonablemente preciso después de hacer pruebas prácticas.

malditas verdades
fuente
0

P = punto centrado en

Pd = punto distante claramente definido

Pn = punto cercano claramente definido

D = diámetro del círculo de confusión

f = número f

F = longitud focal

Pn = P ÷ (1 + PDf ÷ F ^ 2)

Pd = P ÷ (1-PDf ÷ F ^ 2)

Estándar de la industria para establecer D = 1/1000 de la distancia focal. Para un trabajo más preciso, use 1/1500 de la distancia focal. Suponga una distancia focal de 100 mm y luego 1/1000 de 100 mm = 0.1 mm o 1/1500 = 0.6666 mm

Alan Marcus
fuente