Panorama Tools Plugins
The Panorama Tools Plugins provide the most powerfull interface to the Panorama tools library. Virtually any function that is coded inside the pano12 library can be accessed by the plugins. PTStitcher and PTOptimizer, which are the basis for the different GUI front-ends only use a small subset of all available functions.
The plugins come as a set of four files in Photoshop plugin/filter (on windows: .8BF) or Gimp plugin format and are named adjust, correct, perspect and remap. They are compatible not only with photoshop but with other image editing programs that can load photoshop compatible filters, too. (f.e. IrfanView, GraphicConverter, ...)
In addition, the Panorama Gimp plug-in includes the Pan Controls filter, an early prototype of pteditor.
Thomas Niemann has updated the windows filters for 16 bit compatibility and fixed some bugs. They are available from his page: http://epaperpress.com/ptplugins/index.html To distinguish them from the old version he has named them PTAdjust, PTCorrect, PTPerspect and PTRemap.
Versions for Mac OSX - 16 bit compatible too with additional LensFix plugin - are available from http://www.kekus.com/plugin/index.html
The four plugins are listed in the photoshop filter menu under 'Panorama Tools' (old version) respectively 'ePaperPress' (Thomas Niemann versions). Both versions can be used in parallel, if needed.
Helmut Dersch never published an extensive documentation of the plugins, but he provided several tutorials covering most of the features. With the original plugins comes a readme file from which I took most of the information provided here. For convenience it can be found here.
The filters are named Adjust, Correct, Perspective and Remap. They all open with a small dialog which always has a small button called 'Prefs' in the upper right corner. This button opens a Preferences dialog, where the user can choose beween several ways how panotools should deal with result images. (More information can be found in the Panotools plugins Readme file)
(a) Display Cropped/Framed Resultimage
The Photoshop plugin interface does not provide resizing of an image window. If you choose this option, the result of an operation is displayed in the same window as (and replacing) the source image.
This option is recommended if the image size does not change or if the area outside the window bounds is not needed.
(b) Save full sized Result to File
If the image will get resized this option is recommended. The file name you provide here is extended by a number in case there will be more than one file - no need to specify different names if you want to save multiple results. Files will be in PSD format.
(c) Open Result with Application
This only makes sense if you choose (b) too. The saved result will be opend by the application you specify here (with full path). This will normally be your image editor (Photoshop or whatever).
(d) Don't save Mask
This is a special option for old photoshop LE, which was not able to deal with masks. It might be useful for other applications that don't use masks, too.
In the upper right corner of the Preferences filter there is another small button named 'More'. If you press it, you get a dialog where you can choose interpolator and gamma. See Testing Interpolator Quality and Interpolation and Gamma Correction articles by Helmut Dersch for details or read in the Panotools plugins Readme about Selecting the Interpolator or Gamma Correction
Here a brief description and some links to tutorials that deal with the particular filter. (More information can be found in the Panotools plugins Readme file)
The most powerful of the filters. In the upper part of the dialog it lets you extract and insert images of any projection into and from images of any projection. The lower part is dedicated to reading control points and running the optimizer. The functionality of the lower part is mostly replaced by the common GUI front-ends now. (See also Panotools plugins Readme file)
Extract and Insert
For both tasks you have two choices: 'Use Options' or 'Use Script'.
If you check 'Use Options' you need to press the 'Set' button. For both extracting and inserting there opens the same dialog, where you can specify what and how should be inserted or extracted.
The dialog has two parts, an upper one that specifies the image to extract or insert and a lower one that specifies the panorama from and to where the extraction/insertion should be done and how this should be performed.
Only values that can not be read from the source image must be specified. This is f.e. HFOV (horizontal field of view), Format and Position in any case and Width and Height only for result images.
In addition there is a 'Correct' button in the upper part, which opens the same dialog as the Correct filter. Any transformation that is specified there is performed on the source image together (in one mathematical operation) with the Adjust filter operation in order to avoid unnecessary interpolation steps.
Some tutorials that make use of the Adjust filter, Extract and Insert feature by Options:
- Editing Panoramic Images from Helmut Dersch (caution, PanCtrls plugin mentioned there doesn't work anymore).
- Using Fisheye Lenses for Architectural Photography from Helmut Dersch.
- Extracting Rectilinear Images from Panoramas by Helmut Dersch.
- Using Ptools Adjust PS-Plugin to edit nadir / zenith by Flemming V. Larsen. This one shows how to remap the panorama in order to retouche nadir and zenith in one image.
The "Use Script" option loads a text file script to set the preferences for the Adjust plug-in. Valid scripts include PTOptimizer and PTStitcher scripts. The file type must be text. Two uses for this option are to run the Optimizer without using PTOptimizer, to extract a set of images from a panorama (Adjust must be run once for each output image) or to stitch (Adjust must be run once for each input image).
These filter gathers some useful functions that have not directly to do with panorama. Each of the corrections has a separate Options dialog. All of the corrections are made in one transformation step thus avoiding unnecessary interpolation steps. (See also: Panotools plugins Readme file)
This is a frontend to the lens correction features of panotools. Lens correction is performed by a third order polinomial, the formula is displayed above the input fields.
The purpose of Radial Shift is to correct for barrel distortion, pincushion distortion or wavy lens distortion, for transverse chromatic aberration and for color separation by scanning cameras. Units for r_src and r_dest is image portrait width/2 (or landscape height/2), half of the shorter edge of the image corresponds to r_src=1.
If you check the option 'vertical', only the vertical axis is affected by the shift, and the unit is relative to image height/2. This can be used to correct lens distortions in Panoramic cameras. Finally, the option 'horizontal' shifts each pixel horizontally by an amount determined by its vertical distance from the center line.
For radial correction coefficients a, b and c are identical to the lens correction parameters used by PTStitcher and all of the GUIs (see top). The (linear) d coefficient specifies the image size and is not available for PTStitcher where the v parameter (Field of View) plays it's role.
The effect of the 4 coefficients can hardly be described but easily visualized. Go to Peter Reimer's site and get abc.xls if you want to see how the coefficients (un-)distort an image.
Radial Shift can be performed for red, green and blue channel separately in order to correct for complex transverse Chromatic aberration.
Some tutorials about correct, Radial Shift:
- Correcting Barrel Distortion by Helmut Dersch.
- Correcting Color Separation in Scanning Back Cameras by Helmut Dersch.
- Correcting Chromatic Aberration of Digital Cameras
- PTShift by Eric Gerds, which provides a sophisticated way to determine the right coefficients in order to correct transverse chromatic aberration with Radial Shift
Vertical Shift & Horizontal Shift
Shifts the entire image vertically respectively horizontally. Red, green and blue channel can be shifted by individual amounts. Input in pixels.
Shears the entire image. Shear is a distortion that shifts f.e. the upper edge to the right and the lower edge to the left (horizontal shear). Used to correct shear by some scaners. Input in pixels.
Scales the image using the panotools high quality interpolators. Input in pixels. You can preserve aspect ratio upon scaling by setting one of width or height to 0.
Corrects for edge light fall off (Vignetting). Correction can be done separately for red, green and blue channel. Input in brightness values (-255 to +255). Half of that amount will be subtracted from the center pixels of the image, whereas the other half will be added to the edge pixels.
Radial Luminance in the original panotools distribution caused some banding especially in areas with uniform color (like sky f.e.) because of 8 bit operation. The pano12 developers solved this problem recently (version 220.127.116.11) and with the 16 bit version (see top) it should be no problem at all (if used in 16 bit).
- Creating VR-Panoramas Using a 15mm Rectilinear Lens by Helmut Dersch contains a short section about Radial Luminance.
Crops image to the brightest rectangle of a given size. Useful to crop scanned images to equal sizes. Set the preferences options to (b) and (c), since this tool changes the size of the image!
It automates the tedious task of cropping frames around scanned images, especially around circular fisheye images. If you are scanning negatives, the frame may be white. To crop this frame, invert the colours of the image, then run it through 'Cut Frame', and invert it back. This can be easily automated by photoshop actions or similar.
A Fourier Transformation and Wiener Filter.
- Attempt to Restorate Star Trail Images by Helmut Dersch is a possible use of a Wiener Filter.
Load & Save
All settings made in the Correct filter can be saved to and loaded from a binary preferences file. PTShift makes use of this ability to directly save chromatic aberration correction parameters to Correct, Radial Shift settings.
Erik Krause 19:24, 19 Apr 2005 (EDT)