Abstract: Calculating Image Blur - a Multipurpose Optical Calculator

Bob Atkins Photography


A Multipurpose Photographic Calculator for Depth of Field, Hyperfocal Distance, Image Blur...and More

This is a small Windows program written in Visual Basic which performs an number of functions related to calculating the degree of image blur you can expect for various amounts of defocusing. Basically you can calculate the sharpness of the image outside the traditional "depth of field" limits. This is useful if you want to compare various lenses and formats to see what the effects are on the background (or foreground) blur in an image. It's part of what constitutes "Bokeh", but while "Bokeh" is a measure of both the quantity and the quality of background blur, this program only calculates the quantity. You can't calculate the quality by any simple method even if you know the optical construction of the lens. It also calculates the traditional depth of field and hyperfocal distance, but it goes quite a bit further than most DOF and HFD calculators do.

It uses the usual geometric optics model as the basis for calculation, but it does partly take into account the wave nature of light and diffraction limitations. The geometric optics model assumes light can be focused to in infinitely small point, which of course is not true. The smallest spot to which light can be focused is called the diffraction limited spot size, and it depends only on the relative aperture (f-stop) at which the lens is being used (for a perfect lens). The program takes this into account by not allowing any calculated value for image blur to be smaller than the diffraction limited spot size. If the result of a geometric optics calculation predicts a blue smaller than the diffraction limited spot size, the value of the diffraction limited spot size is substituted.

Probably the best way to explain what it does if to go through the controls one by one. Below is a screen shot of a typical screen.

There's a "START" button to start the program, a "QUIT" button to end the program and a "PRINT" button which sends a graphic image of the screen to a printer.

The inputs are mostly controlled by sliders. The first one sets the focal length in 1mm increments from 10mm to 600mm. The second slider sets the aperture in steps of 0.1 stops from f1.0 to f32. The third slider sets the value you want to use for the circle of confusion value which is used in hyperfocal distance and depth of field calculations. Some suggested values are given on the screen. The fourth slider sets the distance of the main subject in your image, i.e. the distance at which the lens is focused. This goes from 10cm to 10km.

The last two slides set two points, one in font of the main subject and one behind the main subject. Slider #5 sets the distance between the subject and the closer point at which you want to calculate image blur and slider #6 sets the distance between the subject and the further point at which you want to calculate blur.

The screen shot above shows a 50mm lens at f1.7 focused at a distance of 10m. The near focus point is set 1m in front of the focus point and the far focus point is set 100m behind the focus point. These values are reflected in the three readout windows below the sliders. The leftmost window shows the distance from the lens to the closer point (10m - 1m =9m), the center window shows focus distance again and the rightmost window shows the distance from the camera to the farther point (10m + 100m = 110m).

Below these values is a box on the left which groups together Hyperfocal distance (HFD), Depth of Field (DOF), the Near Point in Focus and the Far Point in Focus. These values are grouped together because they are subjective quantities, i.e. they depend on what YOU think is sharp and what number YOU chose for the value for the circle of confusion. For 35mm work the usual CoC value is 30 microns and it's based on what would look sharp to most people when viewing and 8x10 print from a viewing distance of about 18". However CoC is something YOU pick, not an optical property of a lens. Picking a different value doesn't change the image in any way! You'll see this if you move the CoC slider. The 4 values in this box will change, but none of the other values will.

Next the theoretical minimum diffraction limited spot size is shown. The is the minimum diameter of the circle into which light can be focused by a perfect lens. Below that is the magnification, which is the ratio of the size of the image to the size of the subject.

The next display shows what the size of an image of a point at infinity will be. This is directly related to the amount of distant background blur in an image. The final to displays show the size of the image of a point at the chosen foreground position (in this case at 9m from the camera and 1m in front of the focus point) and at the chosen background position (in this case 110m from the camera and 10m behind the focus point).


To the right of these displays are a second set of displays which show the corresponding sizes in an 8x10 (or 8x12) print. Since the original image has to be enlarged to make the print, these values are correspondingly larger. The enlargement factor is determined by the size of the film or sensor and is selected via the "radio buttons" for full frame 35mm, 1.3x multiplier digital sensors (e.g. EOS 1D Mk II), 1.5x digital sensors (e.g. Nikon D200) and 1.6x sensors (e.g. EOS 20D).

This program can be used in a number of ways. for example you can compare the foreground and background blur that you'd get using the same lens on a full frame and 1.6x DSLR by first setting the sliders for the full frame condition and with the "full frame" radio button selected. Note the "magnification" in the 8x10 print. Then select the 1.6x button and adjust the "Subject distance" slider until you get the same print magnification factor that you had before. This gives you the same field of view. Now compare the blur values with those you had in the full frame case.

You can download the program HERE

In order to run, the program requires the Vbrun300.dll file be in your system folder. This may already be true for most people since many programs require it and some autoinstall it. If the program doesn't run, you can download a vbrun300.dll installer directly from the Microsoft website

The program is free for non-commercial use. If you find it useful and want to make a donation, see my Feedback page. Note that although the program is freeware, meaning it is available at no cost for individuals to use for non-commercial purposes, it is NOT public domain, meaning that you can't sell it, incorporate it into any other product, distribute it or modify it in any way or use it to make money for yourself without first obtaining a written license from the copyright and intellectual property owner, i.e. me!

Note that the decision to download this software and to run it on your system is up to you to make. I take and accept no responsibility for any problems which may occur as a result of downloading, installing or using this software.

The program is self contained in that it makes no changes to your system, the registry, nor does it create any new files. To remove it just delete the file.

Please feel free to link to this page - in fact I'd appreciate it if you would do so - so that other users can download the latest version of this program (assuming I develop later versions...).

© Copyright Bob Atkins All Rights Reserved