How to do live FFT?


I’m analyzing some dm3 file taken from TEM.

I found FFT process in imagej but also want live FFT process which gives real time and continuous FFT image when selected area is changing.

What should I do?

p.s. I use fiji imagej


Good day Donghoon Lee,

as far as I understand your question, you would like to have the Fourier-transform of selected areas of an image.

I don’t think, that you will be able to get a temporally contiuous computation but, depending on the size of the selection, a quite fast one. In any case, a macro or script will be necessary.

Please note that the Fourier-transformation algorithm that comes “native” with ImageJ is only fast for square selections with side lengths 2^x (with integer x), which is a ususal restriction known from the classic FFT-algorithm.

Furthermore, you should consider a suitable window function for your selection in order to reduce the influence of the selection borders to the Fourier-spectra.

BTW, are you changing the selection (position?) manually or by use of a macro?




Thank you for answering.

What I want to do is when I choose selected square area and change its position manually, the FFT image also changes according to changed position.

Now this won’t work. The FFT image doesn’t change when I change the position.

But I want to get real time FFT image to see what’s changing!


Donghoon Lee,

as I’ve written, what you want is not implemented in ImageJ and I guess that there is no ImageJ-plugin that does this.

You can however approach this behaviour by using an ImageJ macro or even better, ImageJ plugin. However, I fear you won’t get the desired real time behaviour.

The idea for such a macro/plugin is to get the current position of the selection and then perform the Fourier-transformation.




I’m sorry to hear that…

I’m not good at programming… I have no idea how to design live FFT script.

But thanks for noticing!