DOF'u hesaplamak için bir formül var mı?


16

DOF'un aşağıdakilere bağlı olduğu konusunda oldukça netim:

  1. Odak uzaklığı
  2. açıklık
  3. Konuya olan uzaklık
  4. Sensör boyutu
    ve daha fazlası (yorumda belirtildiği gibi).

Ama burada soru nedir: Tüm bu faktörleri DOF ile ilişkilendiren bir formül var mı? Bu değerler göz önüne alındığında, alan derinliğini doğru bir şekilde hesaplamak mümkün mü ??


1
Dikkate alınması gereken iki şey daha var: (5) son görüntünün boyutu; ve (6) diğer beş faktör dikkate alındığında "kabul edilebilir keskinlik bölgesi" veya "yeterli bulanıklık derecesi" ile ilgilenip ilgilenmediğiniz.

Yanıtlar:


17

Alan derinliği, büyütme ve f-sayısı olmak üzere iki faktöre bağlıdır.

Odak uzaklığı, özne mesafesi, kafa karışıklığı boyutu ve bulanıklığı (bulanıklığın göründüğü yarıçap) birlikte büyütmeyi belirler.

Alan derinliği, formüldeki değişkenler dışındaki lense veya kamera tasarımına bağlı değildir, bu nedenle tüm kameralar ve lensler için alan derinliğini hesaplamak için gerçekten genel formüller vardır. Hepsini belleğe adamadım, bu yüzden sadece Wikipedia'dan kopyalayıp yapıştıracağım, bunun yerine bu bağlantıyı bırakacağım:

Sorunuza daha iyi bir yanıt, formüllerin ilk prensiplerden türetilmesi, bir süredir yapmak istediğim, ancak zamanım olmadı. Eğer biri gönüllü olmak isterse onlara bir oy vereceğim;)


15

Matematiği istediniz, işte gidiyor:

Kameranızın CoC'sini bilmeniz gerekir , Canon APS-C boyutlu sensörler bu sayı 0.018'dir, Nikon APS-C 0.019 için tam çerçeve sensörleri ve 35mm film için sayı 0.029'dur.

Formül bütünlük içindir:

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

Bunu yapmanın yolu Zeiss formülüdür :

c = d/1730

Burada d sensörün diyagonal boyutu ve c kabul edilebilir maksimum CoC'dir. Bu biraz farklı sayılar verir.

Lensiniz ve kameranız için önce hiperfokal mesafeyi hesaplamanız gerekir (bu formül, odak uzunluğuna yakın mesafelerle, örneğin aşırı makro ile yanlıştır):

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

Örneğin:

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)

Ardından, kamera ve konu arasındaki mesafe göz önüne alındığında, odaklanacak en yakın mesafe olan yakın noktayı hesaplamanız gerekir:

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

Örneğin:

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)

Ardından, kamera ile konu arasındaki mesafe göz önüne alındığında, odaklanacak en uzak mesafe olan uzak noktayı hesaplamanız gerekir:

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

Örneğin:

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)

Artık toplam odak mesafesini hesaplayabilirsiniz:

TotalDoF = FarPoint - NearPoint

Örneğin:

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

Böylece CoC ve HyperFocal ile formülün tamamı önceden hesaplandı:

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

Veya basitleştirilmiş:

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

Önceden ayarlanmış CoC ile: Aşağıdaki denklemlerle aşağıdaki denklemleri basitleştirmeye çalıştım: a = izleme mesafesi (cm) b = 25 cm izleme mesafesi için istenen son görüntü çözünürlüğü (lp / mm) c = büyütme d = Odak Uzaklığı e = Diyafram f = mesafe 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)))

Basitleştirilmiş:

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))

WolframAlpha ile daha da basitleştirildi:

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

Ya da hiçbir şey önceden hesaplanmazsa, kullanılamaz olan bu canavarı elde edersiniz:

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))

Basitleştirilmiş:

(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)

Temel olarak yeniden hesaplanmış CoC ve HyperFocal kullanın :)


@mattdm, formülleri dahil etmekle ilgili sorunuza cevap veriyor mu?
13

Evet, çok yardımcı oldu, teşekkürler. (Üzgünüz ödül tahsis etmeyi unuttum.)
Lütfen Profili Oku




0

P = nokta odaklı

Pd = uzak nokta keskin bir şekilde tanımlandı

Pn = yakın nokta keskin bir şekilde tanımlandı

D = karışıklık çemberinin çapı

f = f değeri

F = odak uzaklığı

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

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

Odak uzaklığının D = 1/1000'ini ayarlamak için endüstri standardı. Daha hassas çalışma için odak uzunluğunun 1 / 1500'ü kullanın. 100mm odak uzaklığını varsayalım, 1/1000 / 100mm = 0.1mm veya 1/1500 = 0.6666mm

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.