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