Download
New Work
* FFT cross-correlation now uses identical subimages from each image.
* FFT XC shows {dx, dy} rotation (not shift) between subimages for maximum value.
* FFT XC first removes mean of each subimage.
* FFT XC is now = real(rotate(iFT(FT*(im1-mean(im))xFT(im2-mean(im2))), sub_center_x, sub_center_y)), rather than 'magnitude', so that values may be < 0.
* FFT XC results are unscaled, and displayed as actual values (e.g. '0.00043562' at maximum).
* XC table columns are wider to show more digits.
* XC table automatically scrolls to maximum value.
* XC text field shows selection rectangle dx and dy while dragging.
* All menus now work when any window is frontmost.
* 'Find circle' and 'Move to center' buttons are hidden until features are implemented.
* Intel version available.
Caveats
* FFT XC of entire rotated/wrapped image gives correct offsets:

* However, FFT XC of subimages does not necessarily produce correct offsets, while direct XC does. This is because FFT subimage is rotated/wrapped only with respect to itself, while direct XC looks beyond subimage for match:

* FFT XC may have horizontal or vertical artifacts, because opposite edges of subimages are not the same:

Still To Do
* Sub-pixel cross-correlations via quadratic surface fitting and pixel interpolation.
İSky Coyote and Dr. Eliot Young, 2006