Lens correction model
Panorama Tools a, b & c parameters
The Panorama Tools a, b & c parameters correspond to a third-order radial polynomial describing radial lens distortion. It is never exact, but can give a pretty good approximation to the real behaviour of a given lens. The parameters are used by various tools to correct both barrel distortion, pincushion distortion and wavy distortion
There are a number of ways to determine the a, b, c and fov parameters for a particular lens/camera combination:
- Taking a single photograph of a rectangular object, selecting lots of horizontal and vertical control points, then optimising roll, pitch, yaw, fov, a, b & c. You need to set the output format to Rectilinear Projection for this technique to work. The process is similar to this hugin architectural tutorial:
- Taking two or more overlapping photographs and selecting lots of normal control points, then optimising roll, pitch, yaw, fov, a, b & c. This technique works with any output projection format (note that to get a really accurate measure of the field of view, you have to take a full 360 degree panorama).
- Using a tool such as PTLens or clens to read the JPEG EXIF data and correct the image automatically by looking up the lens in an existing database.
The fov, a, b & c parameters are fairly consistent between shots with the same camera/lens combination so you can use them again and again. Though they can vary slightly depending on the focus distance, so many panographers tend to recalculate them for every stitch as part of their normal workflow.
The a & c parameters control more complex forms of distortion so are not very important, you can normally just zero them and use the b parameter by itself.
If you want to see how changing the parameter influences distortion correction go to http://www.4pi.org/downloads/ and get abc.xls. Don't deactivate macros on loading.
See also Helmut Dersch's barrel distortion page.
Tools to correct barrel and pincushion distortion
- The original PTStitcher can be scripted to batch process images with known a, b & c parameters. It can also be operated with one of the GUI front-ends.
- The Correct Radial Shift filter in the Panorama Tools Plugins for the gimp or photoshop uses the same a, b & c parameters as PTStitcher. Note that it doesn't know about d & e parameters and uses 'd' as an overall scaling factor instead, which should be d = 1-(a+b+c) to keep the image roughly the same size. If you need to shift the correction center like with the d & e parameter you must combine it with Vertical Shift and/or Horizontal Shift.
- PTLens is a Photoshop plugin and a stand-alone Windows tool that uses the same a, b & c parameters and comes with a database of popular lenses.
- PTShift determines different a, b & c parameters for the three color channels in order to correct for Chromatic aberration with the Correct Radial Shift filter.
- Gimp wideangle plugin uses a different formula altogether to correct distortion.
- Gimp phfluuh plugin is another tool that corrects lens distortion using yet another formula.
- CamChecker is a tool for automatically determining lens distortion and generates a different set of parameters from everything else.
- zhang_undistort is a tool distributed with hugin that uses CamChecker parameters to actually correct distortion.
- Distortion Remove uses a completely different approach with a distortion matrix. Page in german only: http://www.stoske.de/digicam/Artikel/verzeichnung.html