the standard ImageJ Process>FFT command works with images of any size.
The image is padded with a constant value (equal to the average pixel
value) to the next power of two.
For the Fourier-domain filter operations, the image is padded to a power
of two by taking the border as a mirror.
Only the Process > FD Math operations need square input images where the
side length is a power of two.
On 05.12.19 18:47, Sara_24 wrote:
the options mentioned by you mainly depend on what you want to obtain (see
Independently from these options, ImageJ *will* transform images that have
side-lengths that are not a power of two. (Just try it!)
In general and classically, the Fourier-transformation of digitized images
with side-lengths that are not a power of two can be performed following two
1. Using the DFT (Discrete Fourier Transformation)
This approach doesn't show the speed profit of the FFT-algorithm (Fast
Fourier Transformation). In other words, it is comparably slow. (The classic
FFT requires images with side-lengths that are a power of two.)
you find an implementation of the Fourier-transformation for ImageJ (plugin)
that uses the FFT-algorithm for images with side-lengths that are a power of
two and the DFT-algorithm for images with side-lengths that are not a power
2. Padding (embedding)
Images with side-lengths that are not a power of two are padded to the next
size with side-lengths that are a power of two. In other words, the small
image is embedded in an image support that has side-lengths that are a power
of two. This new support is previously filled with the mean value of the
As Michael pointed out already, this approach is used by ImageJ.*
(There is a different way of embedding that I prefer. It uses windowing and
embedding in an empty support. If you prefer this common approach, I can
provide a windowing plugin for ImageJ.)
The options you've mentioned (in fact their naming is far from reasonable):
1. FFT window
You get an 8bit result that is the Fourier-Power Spectrum with the spectral
values (gray-values) logarithmically scaled.
2. Raw power spectrum
You get a 32bit result that is the Fourier-Power Spectrum.
3. Fast Hartley Transform
For the time being, forget about this option.
4. Complex Fourier Transform
You get a 32bit stack (consisting of two slices) that represents the
complex-valued Fourier Transform. The first slice is the real part and the
second slice is the imaginary part of the complex-valued Fourier Transform.
The question remains, what you need for your purposes.
Please feel free to ask, if you have further questions.
ImageJ doesn't centrally embed the small image but puts it at the top left
of the new support. This doesn't make any difference for Power Spectra but
it does introduce a linear phase which has considerable impact on the
complex-valued Fourier spectrum.
If you need the complex-valued Fourier spectrum without this effect you need
to do the correct embedding yourself.
Am 08.12.19 um 10:17 schrieb Sara_24:
> Hi Herbie,
> would you please tell me which of FFT options do the FFT of images of
> non-power of two size? I use Fiji and as FFT options it has only FFT
> Raw power Spectrom, Fast Hartley transform, and complex Fourier transform.
> Which one do the FFT of images of non-power of two size?
> Best regards,