PTShift Version History 

Version 1.8 beta6 (July 1, 2007)

- From this point forward, PTShift will ONLY work on Windows. It will no longer be compatible with Macintosh.

- Now works with Photoshop CS3 on Windows.

Version 1.8 beta5 (August 11, 2006)

- Bug fix for Mac OSX with PS CS2. The image would not update on the screen when you shifted a color channel. This problem should no longer occur. Many thanks to Christoph Bolten for testing PTShift on his Mac to eliminate this bug.

Version 1.8 beta1 - beta4 (April 2006)

- More user friendly gui with more descriptive buttons and labels.

- The gui now allows you to set the dR channel shift for all 3 channels at the same time.

- Created a checkbox that will run the PanoTools Correction plugin on the image, while PTShift is still running. This feature allows the user to more easily find a good abcd value that can remove tCA.
  In previous versions of PTShift, you could only see the results of a PanoTools correction after you had exited PTShift.

- The "Zoom +/-" button, no longer changes the visibility of the Control Points Layer or the PanoTools Corrected Image Layer. Previously, the button would always cause all layers to end up visible, even if they started out as invisible.

- Small bugfix in the way the ZOOM buttons work. When the input image is zoomed in and scrollbars of the image are not centered, then the "Zoom +" button would not properly center and zoom in on the selection box. This issue has been fixed.

- If you press "Hide boxes" button to make the Control Points layer invisible, then that layer will now remain invisible even when other buttons are pressed (like when pressing Goto, NEXT, or PREV etc...).

- The 'Save ABCD' output options have been eliminated from the Preferences window. From now on, the 'Save ABCD' button will only create the output file ABCDparams (which holds the calculated abcd values, and can be loaded into the PanoTools Radial Correction plugin). The Save ABCD button no longer has the ability to run the PanoTools Correct filter, because the PanoTools checkbox now has that capability.

- If a Windows PC user presses 'Cancel' for the PanoTools Correction plugin when you activate the PanoTools checkbox, then the PanoTools Corrected layer is simply deleted and the PanoTools plugin is not run.

- Fixed a bug where the original PanoTools Correction plugin (not the newer epaperpress plugins) would not run properly from within PTShift on Windows.

- The NEXT,PREV buttons in the INFO window now select the next/previous control points according to their order in the table in the INFO window, instead of choosing next/previous simply based on control point index.

- If image has not been saved yet (and thus has no path) then PTShift will not run, and will give an error message.

- Added a "?" button to the main PTShift gui and the Control Points Info gui.

- Added a short description of each button to the "About PTShift" gui. Added a button to the gui that takes you to the homepage website.

- Got rid of 'Exit Upon Save' option in Preferences window. Since we do not need to input large numbers of control points (4 - 5 points is enough) anymore, the Exit upon Save is no longer that useful.

- Added warning message in case 2 control points (on same channel) are with 10 - 15 pixels of each other.

- Added some fault tolerance to PTShift in case the preferences file is corrupted.

- For Photoshop CS2, PTShift will automatically set the 'Playback options' for Actions to 'Step By Step'. The reason for this is that having the Playback options set to 'Accelerated' can cause refresh problems.

- The 3 data files (for all 3 color channels) for the saved control points have now been combined into one file.

Version 1.7 (Jan 22, 2006)

Version 1.7 is basically the same as v1.7 beta6. Thought that PTShift should be taken out of beta since it seems to work ok.

Version 1.7 is compatible with Photoshop CS/CS2 on both Mac OSX and PC. PTShift has a built in optimizer to calculate abcd. It can calculate abcd even with only a single control point. You can specify channel shifts in 0.1 pixel increments.

Work on PTShift will probably continue, since there are several ways to improve PTShift workflow.

Changes v1.7 beta6 (Jan 17, 2006)

This beta version of PTShift fixes a few issues for Mac users. PTShift should now be fully functional for Mac users in nearly the same way as it has been for Windows users.

The only real difference is that PTShift cannot save the calculated abcd values directly to the Radial Correction plugin on a Mac, whereas on Windows it can.

The reason for this difference is due to Photoshop Javascript being unable to directly read/write the abcd data values from/to the Kekus (Macintosh) Photoshop Correction plugin.

- For Mac users, I changed the PREFERENCES window of PTShift so that the 3 output options of PTShift are as follows:

1) When you press the 'Save abcd' button in PTShift, the calculated abcd values are saved to an output file and then PTShift will exit. That file is placed in the same folder as your image. The file can be manually loaded into the Kekus Radial Correction plugin (run the plugin, press the load button).

2) When you press the 'Save abcd' button in PTShift, the Kekus Photoshop Radial Correction plugin will run on your image using the calculated abcd values, and then PTShift will exit. Note that the PTShift abcd values are NOT retained by the plugin after it has run. PTShift is unable to make the Kekus Radial plugin remember the calculated abcd values due to a Photoshop problem.
[For Windows users, this is not an issue. The Radial Correction plugin WILL retain the abcd values on Windows]

3) Implement both options 1) and 2).

By comparison, for Windows users the PREFERENCES window of PTShift has the following 3 output options:

1) When you press the 'Save abcd' button in PTShift, the calculated abcd values are saved to an output file and then PTShift will exit. That file is placed in the same folder as your image. The file can be manually loaded into the PanoTools Radial Correction plugin (run the plugin, press the load button).

2) When you press the 'Save abcd' button in PTShift, the calculated abcd values are saved to the PanoTools Radial Shift plugin and then PTShift will exit.

3) When you press the 'Save abcd' button in PTShift, the calculated abcd values are saved to the PanoTools Radial Shift plugin, the plugin will then run on your image, and then PTShift exits automatically.

Once again, many thanks to Kevin Kratzke for testing PTShift on his Macintosh!

Changes v1.7 beta5 (Nov. 29, 2005)

Note: PTShift is still not fully compatible with Mac OS X. PTShift should be able to calculate the abcd values on a Mac, but it is not known whether those values can be saved by PTShift on a Mac. Hopefully this will be fixed in the next beta version.

A) PTShift now has a built in optimizer to calculate abcd. Thus, PTShift no longer needs to use PTOptimizer on Windows, or the Adjust plugin filter on Macintosh, to calculate abcd.

B) CALCULATE button in the INFO window has been removed. As soon as you enter the INFO window, the abcd values are automatically calculated for all 3 color channels - instead of just calculating the abcd value for the currently selected channel.

C) Because of B), when you press the SAVE button the abcd for all 3 channels will be saved into an output file, or placed into the PanoTools Correction filter (ie. Photoshop plugin). Previously, you had to go into the INFO window for each channel one at a time, before you could press the SAVE button. Now, you only have to enter the INFO window for any one given color channel, press SAVE, and you then have your result for all 3 channels.

D) Added a color channel selector to the INFO window

E) When you press Save button in INFO window, the output log file will show the abcd results for all 3 color channels.

F) RMS distance error displayed in INFO window now, instead of average of absolute values of distance errors.

F1) RMS distance error also displayed in output log for all channels.

G) You now have the option (in the Preferences window) of choosing where PTShift places the abcd output values that it calculates:

1) the abcd are stored in an output file in the same folder as the image, OR

2) the abcd values are put directly into the PanoTools Correction filter. The advantage of this is that you don't have to go to the trouble of manually loading the abcd values into the Correct filter. This is much more convenient for the user. This option probably does not work on a Mac yet.

H) Input control points and their channel shift dR are now checked before being saved so that the slope of the rs vs. rd curve is always positive. This is so we can insure valid results for the abcd values.

I) When you press the Zoom In button (ie. '+' button), the selection box will first be centered, and then the zoom will occur. Otherwise, zooming in without centering would simply cause the selection box to disappear outside the image window.

J) In the INFO window, 2 buttons were renamed to 'NEXT' and 'PREV'. These button names are more descriptive than the old button names. 'NEXT' will take you to the next control point, 'PREV' will take you to the previous control point.

K) Renamed the CorrectFilter(ALL) & CorrectFilter(ALL_NoFRINGES) files to ABCDparams & ABCDparams(NoFringes). Also, the output log file has been renamed to log.txt.

L) In the CONTROL POINT INFO window, we updated the functionality of the GOTO, NEXT, and PREV buttons. If you are currently not at a saved control point, only a blank space will be displayed in the text field (the field that normally displays the index of the current control point). If you press the GOTO, NEXT, or PREV buttons in this case, PTShift will go to the first control point it finds within the selection box. If none found, it goes to the last control point.

M) x,y,dR,Distance in main PTShift window is now labeled as x,y,R,dR. Also, the control point position x,y is now displayed on one line, and Distance R and channel shift dR is displayed on a separate line. R is the distance of x,y from the image center.

N) Bugfix - if app.backgroundColor or app.foregroundColor have undefined values, the PTShift would crash. This has been fixed, I think. I do not know how or why app.foregroundColor would be undefined in some rare cases.

O) Bugfix - Pressing DRAW to make the control points layer invisible, and then pressing GOTO would mess up the control points layer. This was fixed.

P) PTShift no longer gives error if Control Points layer is the active layer when the script is run.

Q) Different method being used to detect the bounds of the user specified selection box. The selection should be a box or rectangle, not a circle/ellipse. This new technique is slightly more efficient/faster, in that it does not require creating a dummy layer in order to determine the selection bounds.

R) The label of the DRAW button now toggles between 'DRAW' and 'HIDE'. This button toggles the visibility of the control points layer.

S) Removed the ROTATE button from the main PTShift gui. The ROTATE functionality is not needed at the moment, so it has been eliminated. We may bring it back if it's needed in the future.

Changes v1.7 beta4 (August 31, 2005)

- small bugfix due to bug in version 1.7beta3.

Changes v1.7 beta3 (August 30, 2005)

- It is no longer necessary to enter at least 4 control points in order to get an abcd output from PTShift. Specifying just 1 control point will be enough for PTShift to calculate an abcd value. However, it is still a good idea to specify at least several control points at different distances from the image center so that the CA will be removed from the entire image.

- When you press 'Goto' in the main PTShift window, if there are no control points within a drawn selection box (or if there is no selection box at all), then PTShift will simply go to the last control point that was created.

- When 'Goto' button is pressed, PTShift will go to the most recent control point found within the selection box, instead of just randomly choosing which point to go to.

- From now on when PTShift starts up, it will automatically search for any control points (for the current color channel) within the selection box. If it finds any control points, it will automatically go to that control point and display it's dR value. This is useful when you have to go thru several iterations of adjusting a control point's dR value and entering/exiting PTShift multiple times.

- When an anchor channel is chosen in preferences, the channel selector in the main PTShift window no longer allows you to select that channel.

- PTShift no longer calculates the Inverse abcd values, since the inverse values are rarely ever needed.

Changes v1.7 beta2 (August 17, 2005)

- When exiting PTShift all of the color channels will now become active again. The reason why this is important is that when you try to run the PanoTools radial shift filter, you must have all 3 color channels active, or the filter cannot be run.
  When entering PTShift again, it will remember the last color channel you were working on.
  Previously when PTShift exited, there was only one single color channel that was active. You would then have to manually go into the Photoshop channels pallete to select all 3 color channels.

Changes v1.7 beta1 (August 12, 2005)

- Updated the script to be compatible with Photoshop CS2.
The only catch here is that for CS2, when you run PTShift using a keyboard shortcut, you need to have the 'Playback Options' for the Actions Palette set to 'Step By Step'. Having the playback options set to 'Accelerated' will cause PTShift to not work correctly in CS2. Photoshop CS does not have this problem.

- Channel shifts are now expressed as a change in radial distance dR from image center. This is because tCA is radial in nature, and because we are deriving the abcd parameters for the PanoTools radial shift filter. The old method of expressing shifts as "dX,dY" is too confusing.

- Ability to channel shift in SUB-PIXEL increments of 0.5 and 0.1 pixels (previously PTShift only shifted in 1 pixel increments). This new capability means that you no longer have to scale an image to a larger size to get sub-pixel capability. You can just run PTShift on the original size image, and then shift the channels in sub-pixel steps to get the exact results you need.

- Added 2 more buttons for color channel shifting, for a total of 4 shift buttons:
     The '<<' button shifts a channel 0.5 pixels radially inwards.
     The '<' button shifts a channel 0.1 pixels radially inwards.
     The '>' button shifts a channel 0.1 pixels radially outwards.
     The '>>' button shifts a channel 0.5 pixels radially outwards.

The user can remove tCA at a point x,y by shifting a channel towards the image center, or away from the image center.

- Tried to adjust the spacing in the data table in the "CONTROL POINT INFO" window of PTShift. This was done for Windows in Photoshop CS2. Mac OSX on Photoshop CS2 has not had the spacing adjusted yet.

- 'Inverse abcd' is no longer displayed in the "CONTROL POINT INFO" window, since most people will never use the Inverse. Only the 'abcd' values are now displayed in that window. Both the 'abcd' and 'Inverse abcd' values will still be saved to the output log file named abcd.txt.

- Sorting order of table in the INFO window is remembered when exiting INFO window.

- When 'Save' button is pressed in the INFO window, PTShift will now automatically exit.

- Distance errors in the table of the INFO window now displayed as positive or negative numbers. If a distance error < 0, then that means that PTOptimizer has calculated a channel shift that is closer to the image center than the user has specified. If distance error > 0, then PTOptimizer has calculated a channel shift that is further from the image center than the user specified.

- Small bug fix for International Photoshop versions. Thanks to Erik Krause for discovering and fixing the bug.

- In the Preferences window of PTShift, after entering a,b,c values for the baseline, the d value is now calculated and displayed as soon as you click anywhere in the window. Previously, the d value would only be calculated after pressing the 'Save' button.

Changes v1.6 (Dec 1, 2004)

- Updated the "PTShift Actions.atn" file.

- Added a ROTATE button, which brings up a Rotate window.
Say you specify channel shifts at x,y (to remove the tCA), where x,y is a distance R from the image center. With the ROTATE window one can now move x,y along a circle of constant radius R (centered in the image), and observe the effect of a chosen channel shift along that circle R.
[Note: all points on a circle of radius R, centered in the image, will require approximately the same radial shift distance to correct tCA.]

- Eliminated non-radial mode from PTShift. Only radial shifting is performed by PTShift now, since the PanoTools radial shift is radial. So in the main dialog window of PTShift, one uses the '<' and '>' buttons to shift a color channel radially inwards or outwards.

- The 'C' button (for centering a selection box) now toggles. Press it once, and the selection box will be centered. Press it again, and the centering is undone and the image is zoomed out to full.

- The 'R' button (for toggling the channel shifts) now keeps track of the channel shifts for each color channel separately. Meaning, you can toggle the shift for channel A, then switch to channel B and toggle it, and then return to channel A and have the 'R' button remember the toggle that was used for channel A.

- Some of the buttons are a little bigger now on Windows.
Not for Mac, however. The reason has to do with all buttons on Mac being rounded on the ends, and cutting off the button labels.

Changes v1.5 (Nov 2, 2004)

- PTShift now accepts a baseline a,b,c,d value for the Input Image (ie. for the NON shifted channels) in the Preferences window.

The most likely use for this is that PTShift will now be able to calculate a SINGLE set of abcd values (for Red,Green,Blue channels) that corrects BOTH lens distortion (barrel or pincushion) and transverse Chromatic Aberration simultaneously.

To do this, you need to :

A) Determine the baseline abcd parameters that will correct the lens distortion (which you can determine with PTGui/PTMac or other means) for a particular image. This baseline abcd should be for the NON SHIFTED channel(s) that you specify in PTShift. In other words, specify the baseline abcd for the channel(s) you intend NOT to shift in PTShift.
Also, the baseline parameters must follow the equation d = 1 - a - b - c.

B) Make sure that from this point on, that the Input Image we work on has NOT been corrected for lens distortion or tCA yet. The image must still have it's distortion and tCA. [It's only that we now know what baseline abcd would remove the distortion, but we do NOT remove this distortion yet]

C) Use Photoshop to scale up the size (by 200 - 300%) of the image if you wish (for subpixel shifting precision).

D) Start up PTShift for this scaled input image, and enter the baseline abcd parameters into the Preferences dialog window (if you choose not to use any custom baseline, then uncheck the 'Image Baseline' checkbox - in this case the default values of abcd = 0 0 0 1 are used).

You only have to enter the a,b,and c values. The 'd' value is automatically calculated from:

d = 1 - a - b - c

after you press the SAVE button in the Preferences window.
[Note: for some baseline values of abcd, the PanoTools radial equation

rs = a(rd^4)+b(rd^3)+c(rd^2)+ d(rd)

will only have valid solutions within a limited radius RMAX from the input image center. Sometimes, this RMAX can be sufficiently small that some of your control points x,y will lie OUTSIDE the circle of radius RMAX. If this occurs, those outermost control points will not be optimized, while those points WITHIN the circle RMAX will be optimized. In this case, you will only need to worry about specifying your channel shift to remove tCA within this circle RMAX.
The Preferences Dialog Window will give a warning message if this should occur for the abcd baseline you have chosen.]

E) Use PTShift to shift whatever color channel needs shifting throughout the input image, to remove the CA.

F) Let PTShift calculate the abcd values for each color channel, and then save the values to the 'CorrectFilter' files. Exit PTShift.

G) Now, when you apply the 'CorrectFilter' file to your Original Image, both the lens distortion and tCA should be simultanously corrected. An advantage here is that only one interpolation is being used, whereas before you would have needed to run the PanoTools Correct filter once for distortion, and again for tCA.

- The output file abcd(log).txt will now show the abcd values, along with the baseline abcd being used, and the average Distance Error for all control points that were optimized (ie. all points within the circle of RMAX).

- The math has been updated a bit here, because I discovered a small mistake in the equations as I was working on this baseline abcd stuff. It was not enough to make any big difference in most cases, but I fixed it anyway just to be safe. [You may also now notice that the optimized abcd values you see in an Optimizer output script file are NOT the same as the abcd values that PTShift generates for you. This is not a mistake].

Changes v1.4 (Oct 17, 2004)

- PTShift now creates output files called 'CorrectFilter' that can be loaded by the PanoTools Correct plugin, so the user no longer has to manually type in the abcd values anymore. There is a 'CorrectFilter(ALL)' file created, that contains the abcd values that the user creates. There is also a 'CorrectFilter(ALL_NOFRINGES)' file created - which will scale the abcd values to ensure that none of the color channels are radially contracting inwards (to avoid color fringes at the edges/corners of the image).

- Only one Windows DOS batch file now (instead of 3) to run PTOptimizer.

- Only one abcd(log).txt file (instead of 3) to keep a running log of abcd values that are calculated.

- The HFOV values being used in the Optimizer scripts have been changed to give slightly better values for 'd' parameter.

- More accurate equation for calculating 'd' is now being used.

Changes v1.3 (Oct 7, 2004)

- Added a Opt(dX,dY) column to the table in the INFO window. This displays the numerical results for the Optimizer(dX,dY) - meaning the Optimizer CALCULATED dX,dY channel shifts, as opposed to the USER SPECIFIED dX,dY channel shifts. [There is a distinction between the USER specified channel shift dX,dY, and the OPTIMIZED channel shift Opt(dX,dY)]

- Added a "Display Opt(dX,dY)" checkbox to the INFO window. When you select this checkbox, then the "Goto Point Button", "< Button", and "> Button" will cause the OPTIMIZER results for dX,dY channel shifts to be shown instead of the USER specified dX,dY.

[Note: there is often a difference between the USER specified channel shift dX,dY, and the OPTIMIZED channel shift Opt(dX,dY). When the difference is sufficiently large, you will see one or more channels shift by a small amount when you toggle the checkbox. You will also see a '*' in the data table for those control points where this difference is large enough to be visible.]

- In the INFO panel table, a '*' will be added to the table when
|round(dX) - round(Opt(dX))| >= 1 or |round(dY) - round(Opt(dY))| >= 1
In other words, when a '*' is present then there will be a visible shift in the channel when you toggle the "Display Opt(dX,dY)" checkbox.

- Very slight speed improvements in INFO panel buttons ('GOTO' button, '>' button, '<' button) by minimizing histogram building times.

- Ascending and descending sort capability for the data table in INFO window.

- In the INFO panel table, a '+' will be added to the table when x+Opt(dX),y+Opt(dY) is FARTHER AWAY from the image center than x+dX,y+dY.

- Added an extra digit of precision to the optimizer script files to reduce rounding errors for better optimization. However, the precision for display in the PTShift dialog windows will remain the same (0.1 pixels).

- Columns in INFO panel table are aligned better for Windows (using TABS). As far as I can tell, Photoshop CS/Macintosh cannot use tabs inside a dialog window, so Mac version now uses a proportional spacing scheme to get better column alignment.

- Another bugfix: reading in text string from optimizer script output such as "5.5e-004" was being converted incorrectly from string to number.

Changes v1.2 (Sept 26, 2004)

- MAC support should work now. PTShift should work on MAC OSX and Photoshop CS. Thanks to Kevin Kratzke for testing for MAC compatibility.

- Action created by Kevin Kratzke added so that the Adjust (panotools) plugin on a MAC can be automatically called by PTShift. Many thanks to Kevin for this.

- Buttons resized so that they show up on a MAC correctly.

- Renamed a few buttons, to make their names shorter.

- Bug was fixed where converting a string to a number causes error on some international photoshop versions. Many thanks to Erik Krause for hunting this unusual bug down and supplying the solution.

Changes v1.1 (Sept 21, 2004)

- Different color boxes for each channel. The boxes are different sizes for each color channel.

- MultiChannel shifting capability.

- The 'Draw' button on Main window now has a toggle capability. The visibility of the control points layer toggles on and off.

- The shift channel can now be chosen in the main dialog window. You no longer have to select a color channel in the channels palette when starting up the script - you still can if you want to, however.

- A few minor bug fixes

- Mac support: PTShift will attempt to run the Adjust panotools plugin when you press the Info button (and if there are 4 or more control points). When the Adjust plugin runs, select "Use Script" and "Run Optimizer". "Browse" to the file PTOptMACScript.txt, which is the script you will be optimizing (PTOptMACScript.txt is automatically created for you by PTShift). Then press "OK" to optimize.
Remember that you must specify the folder (in Preferences dialog) where you want PTOptMACScript.txt to be located in.

Changes v1.01 (Sept 11, 2004)

- No longer make specific references to Red, Green, Blue color channel in the code, for compatibility with International Language versions of PhotoShop.
Exception : in the color.rgb.red color.rgb.green color.rgb.blue statements. Will see if this works.

- Commented out the 'Save Successful' message when you press 'Calc,Save' button. Maybe look for a way to give message withoutuser having to press any OK button on an alert message

- Changed some literals from 0.0 to 0, 0.5 to 1/2, -0.5 to -1/2 in case the decimal point confuses any versions of Photoshop in other countries.

- Added a 'Delete ALL' button to INFO dialog.

- Small bug fix to get correct error distances from PTOptimizer output.