Fourier Image Manipulation Tools

There are a few interesting Fourier-based image manipulation tools implemented in this package.

Shift Theorem

The Fourier shift theorem allows an image to be shifted in any directions by an arbitrary amount, including sub-pixel shifts. It is more computationally efficient than most interpolation techniques (or at least, so I think). It is described well in this lecture and in the NRAO interferometry course.

\[FT[f(t-t_0)](x) = e^{-2 \pi i x t_0} F(x)\]

The shift code is in image_registration.fft_tools.shift.

Similarity Theorem

The similarity theorem, or scale theorem, allows you to upsample timestreams. You cannot gain information below the image scale, but it is useful for getting sub-pixel information about gaussian peaks, for example. This NRAO lecture details the math.

\[{f(ax)\Leftrightarrow \frac{F\left(s/a\right)}{\left|a\right|}}\]

The zoom and upsample methods are in image_registration.fft_tools.scale and image_registration.fft_tools.zoom.

Resources

I made use of a lot of not particularly easy to find documents when writing this code.

As stated elsewhere, though, the main inspiration for this work was Manuel Guizar’s DFT upsampling technique