Чи є формула для розрахунку DOF?


16

Мені досить зрозуміло, що DOF залежить від:

  1. Фокусна відстань
  2. Діафрагма
  3. Відстань від предмета
  4. Розмір датчика
    і більше (як зазначено в коментарі).

Але в чому питання тут: чи існує якась формула, яка пов’язує всі ці фактори з DOF ?? З огляду на ці значення, чи можна точно розрахувати глибину різкості ??


1
Слід врахувати ще дві речі: (5) розмір кінцевого зображення; та (6) чи вас турбує "зона прийнятної різкості", коли враховуються інші п'ять факторів, або "зона достатньої розмитості".

Відповіді:


17

Глибина поля залежить від двох факторів, збільшення та f-числа.

Фокусна відстань, предметна відстань, розмір та коло плутанини (радіус, при якому розмиття стає видимим) спільно визначають збільшення.

Глибина різкості не залежить від об'єктива чи конструкції камери, крім змінних у формулі, тому дійсно існують загальні формули для розрахунку глибини різкості для всіх камер та об'єктивів. У мене немає всіх присвячених пам’яті, тому я б лише копіював та вставляв з Вікіпедії, тому замість цього я залишу це посилання:

Кращою відповіддю на ваше запитання було б перейти до виведення формул із перших принципів, що я мав намір зробити деякий час, але не мав часу. Якщо хто хоче взяти участь у волонтері, я дам їм нагороду;)


15

Ви хотіли математики, так ось що:

Вам потрібно знати коефіцієнт корисної дії вашої камери, датчики розміру Canon APS-C, це число - 0,018, для Nikon APS-C 0,019, для повнокадрових датчиків і 35-мм плівки - це число 0,029.

Формула призначена для повноти:

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

Інший спосіб зробити це формула Зейса :

c = d/1730

Де d - розмір діагоналі датчика, а c - максимально прийнятний CoC. Це дає дещо інші цифри.

Потрібно спочатку обчислити гіперфокальну відстань для об'єктива та камери (ця формула є неточною з відстанями, близькими до фокусної відстані, наприклад, крайнім макросом):

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

наприклад:

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)

Далі потрібно обчислити найближчу точку, яка є найближчою відстані, яка буде зосереджена, враховуючи відстань між камерою та об’єктом:

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

наприклад:

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)

Далі вам потрібно обчислити дальню точку, яка є найбільш віддаленою відстані, яка буде у фокусі, враховуючи відстань між камерою та об'єктом:

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

наприклад:

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)

Тепер ви можете розрахувати загальну фокусну відстань:

TotalDoF = FarPoint - NearPoint

наприклад:

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

Тож повна формула w / CoC та HyperFocal перераховується:

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

Або спрощено:

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

За допомогою попереднього обчислення CoC: я зробив спробу спростити такі рівняння за допомогою таких підстановок: a = відстань перегляду (см) b = бажана роздільна здатність кінцевого зображення (lp / мм) для відстані перегляду 25 см c = збільшення d = Фокусна довжина e = Діафрагма f = відстань 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)))

Спрощено:

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:

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

Або якщо нічого не визначено заздалегідь, ви отримуєте цього монстра, який є непридатним:

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

Спрощено:

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

Тож в основному використовуйте перераховані CoC та HyperFocal :)


@mattdm це відповідає на ваше запитання щодо включення формул?
psarossy

Так, дуже корисно, дякую. (Вибачте, що забув призначити суму.)
Прочитайте профіль


4

Так, є формули. Його можна знайти за адресою http://www.dofmaster.com/equations.html . Ці формули використовуються на цьому калькуляторі, він також детальніше пояснює глибину різкості. Я кілька разів користувався цим сайтом і виявив його досить точним після того, як власноруч робив практичні тести.



0

P = точка, орієнтована на

Pd = віддалена точка різко визначена

Pn = близька точка різко визначена

D = діаметр кола плутанини

f = f-число

F = фокусна відстань

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

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

Галузевий стандарт для встановлення D = 1/1000 фокусної відстані. Для більш точної роботи використовуйте 1/1500 фокусної відстані. Припустимо, фокусна відстань 100 мм, то 1/1000 від 100 мм = 0,1 мм або 1/1500 = 0,6666 мм

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.