ChemiLab.net

. . . Welcome Evin (艾文) to be a new family member !!!

  • Increase font size
  • Default font size
  • Decrease font size
Home => Photography => Depth of Field

Depth of field (DOF)

(DOF) refers to the areas of the photograph both in front and behind the main focus point which remain in focus. Depth of field is affected by the aperture, subject distance, focal length, and film or sensor format.
A larger aperture (smaller f-number, e.g. f/2) has a shallow depth of field. Anything behind or in front of the main focus point will appear blurred.

The Circle of Confusion (CoC) is critical for DoF. Basically it describes the smallest image element that retains identifiable details.  Actually it is a kind of subjective concept. For the full-frame (35mm), it is normally to be around 30 microns based on the appearance of a standard sized print (8x10) at a standard viewing distance (1 foot).
If the works will mostly not be the standard, you may consider to use different CoC event for the same camera. For instance, viewing from 3 ft rather than 1 ft may use CoC x 3. Printing 24*30 rather than 8x10 may use CoC / 3.

Format - CoC
Format 35mm 1.3x DSLR 1.5x DSLR 1.6x DSLR 2x DSLR 645 6x6 6x7 6x9 4x5 5x7 8x10
Camera   EOS 1D D100 EOS 10D, 20D E-1              
CoC (mm) 0.03 0.023 0.2 0.019 0.015 0.05 0.06 0.065 0.075 0.15 0.2 0.3

Please be noted, CoC will be limited by many circustance. For example, A point in the image focused on the sensor has is not a point but a circle, that's diffraction. the diffraction is related with aperture. It will be meaningless if using a CoC smaller than the diffraction size:

Aperture f /2 f /4 f /8 f /11 f /16 f /22 f /32 f /64
Airy disk .0014 .0027 .0054 .0074 .0108 .0149 .0217 .0433
lp/mm 369 185 92 67 46 34 23 12
Equivalent CoC .0027 .0054 .0108 .0149 .0217 .0298 .0433 .0866

function Format( x ) { if( x < 0.0 ) return " inf. "; var s = "" + x; var nLen = s.length; var idxDot = s.indexOf("."); if( idxDot < 0 ) // integer return s; var N_DEC = 4; if( nLen < N_DEC+1 ) { while ( nLen < N_DEC+1 ) { s = s + "0"; nLen++; } } else if ( nLen > N_DEC+1 ) { var nKeep = Math.max(N_DEC+1, idxDot); if( idxDot == N_DEC ) nKeep--; s = s.substring(0,nKeep); } return s; }

A Simple Calculator

function CalculateDoF() { var dofForm = document.dofForm; var focalLength = parseFloat( dofForm.focalLength.value ); var aperture = parseFloat( dofForm.aperture.value ); var distance = parseFloat( dofForm.distance.value ); var CoC = parseFloat( dofForm.CoC.value ); focalLength = 0.001 * focalLength; CoC = 0.001 * CoC; var ff_ac = focalLength * focalLength / aperture / CoC; var hyperFocal = ff_ac + focalLength; hyperFocal = Format(hyperFocal); dofForm.hyperFocal.value = hyperFocal; var tmp = (distance - focalLength) / ff_ac; var nearDistance = distance / ( 1 + tmp ); var farDistance = distance / ( 1 - tmp ); var totalDoF = farDistance - nearDistance; nearDistance = Format(nearDistance); farDistance = Format(farDistance); totalDoF = Format(totalDoF); dofForm.nearDistance.value = nearDistance; dofForm.farDistance.value = farDistance; dofForm.totalDoF.value = totalDoF; }
Focal Length (mm):       Hyper Focal Distance (m):  
Aperture: Near Distance (m):
Object Distance (m) : Far Distance (m):
CoC (mm): Total DoF (m):

DoF Table

var apertures = new Array(1.4, 2.0, 2.8, 4.0, 5.6, 8.0, 11, 16, 22); var distances = new Array(0.25, 0.50, 0.75, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0, 12.5, 15, 20, 25, 30, 35, 40, 50, 100, 150, 200, 500, 1000); function UpdateDoFTable() { var focalLength = 0.001 * parseFloat( document.formDoFTableInput.focalLength.value ); var CoC = 0.001 * parseFloat( document.formDoFTableInput.CoC.value ); var dofForm = document.formDoFTableOutput; var idxField = 0; for(var i=0; i       Focal Length (mm):       CoC (mm): var sHeaderField = "\n"; var sValueField = "\n"; document.write("\n"); for(var i=0; i\n\n"); for( var d=0; d\n"); for(var i=0; i\n\n"); } document.write("
A./H.F.
Dist.(m)
" + distance + "
");
Last Updated on Tuesday, 01 January 2008 08:52