Login  Register

On complex-valued linear filtering in the frequency domain

Posted by Herbie on Aug 11, 2015; 4:11pm
URL: http://imagej.273.s1.nabble.com/FFT-and-Inverse-FFT-problem-for-an-Electron-Microscope-Image-tp5013915p5013984.html

To those who are interested!

A nice feature of ImageJ is that complex-valued images are represented
as stacks consisting of two slices that are called "Real" and
"Imaginary". In this sense ImageJ can deal with complex "numbers" (pixel
values).

If the complex-valued Fourier spectrum of an image is
        S_1 = a_11 + i*a_12
and a complex-valued Fourier-spectral filter function is
        S_2 = a_21 + i*a_22,
then their product
        S_3 = S_1 * S_2 = a_31 + i*a_32
computes as

S_3 = a_11 * (a_21 + i*a_22) + i*a_12 * (a_21 + i*a_22);

and consequently

a_31 = a_11 * a_21 - a_12 * a_22; (Real part of product)
a_32 = a_11 * a_22 + a_12 * a_21; (Imaginary part of product)

With ImageJ the above is easily performed by slice arithmetics using the
"Image Calculator...". The stack S_3 of the Fourier-spectral product is
composed of the real part a_31 in slice 1 and the imaginary part a_32 in
slice 2.

All steps can be easily implemented as an ImageJ-macro or plugin.

Of course, the filtered image is obtained by applying the inverse
Fourier-transformation to S_3.

Best regards

Herbie

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html