FFTBandPassFilter

MacroModule
genre Filters
author Volker Dicken
package FMEwork/ReleaseMeVis
definition FFTBandPassFilter.def
see also FFT, DistToPoint
keywords FFT, BandPass, mid, frequency, smoothing, LowPass

Purpose

Performs a band pass filtering of the input image by means of multiplying its FFT Fourier transform with a suitable blurred mask filter image, e.g a donut shape.

Usage

Just connect an input image and press update.

Details

The used Filter shape can be seen at the second output intended for inspection of the filter only.

Tips

If input image dimensions X or Y have larger prime factors, e.g are 3 digit prime numbers, the algorithm may get slow. Image dimensions that are powers of small primes i.e. multiples of 2,3 or 5 are recommended.

Windows

Default Panel

../../../Modules/Macros/FFTBandPass/mhelp/Images/Screenshots/FFTBandPassFilter._default.png

Input Fields

input0

name: input0, type: Image

input image needs to have 2^N as dimensions in X and Y

Output Fields

output0

name: output0, type: Image

FFT band pass filtered output

output1

name: output1, type: Image

FFT filter mask

Parameter Fields

Field Index

Auto Update: Bool Update: Trigger
Combi1: Integer Upper Limit: Double
Combi2: Integer  
Debug Level: Integer  
Filter shape: Integer  
Lower Limit: Double  
Smoothing: Double  
Smoothing Unit: Enum  

Visible Fields

Lower Limit

name: lowerLimit, type: Double, default: 0.1, minimum: IntervalThreshold.imageMin, maximum: IntervalThreshold.imageMax

Lower limit of the initial binary mask used after some blurring for band pass filtering specified in cycles per degree not voxels to be somewhat independent of image resolution.

If lower limit is 0 a low pass filtering will be performed.

Upper Limit

name: upperLimit, type: Double, default: 0.3, minimum: IntervalThreshold.imageMin, maximum: IntervalThreshold.imageMax

Upper limit in cycles per degree of the binary mask.

Smoothing

name: smoothing, type: Double, default: 5, minimum: 0.5, maximum: 30

Smoothing parameter for gaussian smoothing of the binary mask to reduce the Gibbs_phenomenon http://en.wikipedia.org/wiki/Gibbs_phenomenon

Smoothing Unit

name: smoothingUnit, type: Enum, default: voxel

Specify if smoothing parameter is in voxels or periods per mm (somewhat confusingly labeled “mm” for technical/historical reasons)

Values:

Title Name
voxel voxel
mm mm

Filter shape

name: shape, type: Integer, default: 0, minimum: 0, maximum: ChooseBandFilter.maxInput

The band pass may be with respect to different metrics. A spherical annulus shape in Fourier space is the default. Versions using the distance to a canonical line X / Y axes or ascending / descending diagonal are also provided.

To have some flexibility the user may combine two mask shapes using max / average / or operations.

Check the filter mask output, to understand the options.

Update

name: update, type: Trigger

Performs an update.

Auto Update

name: autoUpdate, type: Bool, default: TRUE

If True update will be performed on input change or change of this parameter to True.

Debug Level

name: debugLevel, type: Integer, default: 2

Controls verbosity of the Macro.

Value 0: no regular console messages. Print only warning for larger images with dimensions featuring larger prim factors possibly slowing down the FFT.

Value 1: console info on new valid input.

Value 2: console message also for empty input.

Combi1

name: combi1, type: Integer, default: 1, minimum: 0, maximum: Switch1.maxInput

First mode to be combined with max / average / or

Combi2

name: combi2, type: Integer, default: 4, minimum: 0, maximum: Switch2.maxInput

Second mode to be combined with max / average / or