FFT Filter

Author: Joachim Walter (Walter at biz.uni-muenchen.de)
History: 2001/10/29: First version
2003/02/06: (1) Corrected a bug which made the FFT_Filter unusable in plugins and macros (the input fields for large and small structures had the same values when the plugin was called from another plugin or a macro). (2) Can be called on each image in a stack. (3) The original image or ROI is now overwritten.
2003/07/03: Integrated into ImageJ, added "Display Filter" option
2007/03/26: 2nd bugfix (Fixed incorrect calculation of filter from structure sizes, which caused the real structure sizes to be wrong by a factor of 0.75 to 1.5 depending on the image size.)
Source: FFT_Filter.java
Installation: This plugin is built into ImageJ as the Process/FFT/Bandpass Filter command.
Description: Filters out large structures (shading correction) and small structures (smoothing) of the specified size by gaussian filtering in fourier space. Filtering of large structures can be imagined as subtracting a version of the image, which is smoothed by a (very large) filter of the size given in the "Filter large structures ..." parameter. Filtering of small structures works as usual: the larger the filter the smoother the image.

The plugin can suppress stripes in horizontal / vertical direction by suppressing fourier components on the vertical / horizontal coordinate axes. The "tolerance" parameter specifies how much the frequencies besides the axes are suppressed. See the figures for examples for the effect of the parameter.

"Autoscale" puts the lowest intensity to 0 and the highest intensity to 255, preserving all intensities. "Saturate" allows some intensities to go into saturation, and produces a better visual contrast. Saturate only has an effect when "Autoscale" is enabled.

Figures: All images were scaled down from 1024x1024 to 256x256, but FFT Filtering was done at the original resolution.


Fig. 1: Unprocessed image of fibroblasts on a coverslip taken with a laser scanning microscope in transmission mode. A square was scratched into the coverslip to locate the cells. Strong shading.


Fig. 2: Same image after filtering of large structures down to 40 pixels small structures up to 3 pixels One clearly sees that stripes, which in this case are due to laser/detector variations or background light from fluorescent tubes, are not suppressed.


Fig. 3: The same as Fig. 2 plus suppression of horizontal stripes Tolerance: 5%


Fig. 4: A similar image with some high intensity dirt after filtering with the same parameters as in Fig. 3. Generally all stripes are removed, but stripe artifacts around the dirt are created.


Fig. 5: Like fig.4, but with a tolerance of 90% instead of 5%. The stripe artifacts have become shorter. However the upper scratch has vanished in the left corner, where it was almost horizontal, and the stripe artifacts around the small dirt have become a bit stronger.

|Plugins | Home |