3D Filter (Frequency domain)

Overview

This program will apply a Butterworth, Gabor, or weighted combination of Gaussian filters to each xyz volume in the input. These filters are applied in the frequency domain; the advantages or disadvanteges of this technique as opposed to the filtering in the spatial domain that is done with 3D Filter are

Also of practical note is that the types of filters offered by this application and by the applications that filter in the spatial domain are quite different, and the availability of the filter you want will frequently limit your choice to one or the other.

The controls in the user interface include a standard set of controls for selecting the input file, output file, and region of interest and for starting and interrupting processing. The other controls are organized as follows:

Topics

Overview | Region processing | Filter types | Preprocessing | Edge handling | Output size

Related Priism Topics

Priism | 2D Filter (spatial domain) | Convolution | 2D Filter (frequency domain) 3D Filter (spatial domain)


Filter types

Three different types of filters are currently supported: Butterworth, Gabor and weighted combination of Gaussians. Descriptions of the forms of these filters and the input parameters specific to each are given below.

Butterworth

A Butterworth filter has the following characteristics:

Two variants of Butterworth filters are provided, a smoothing filter which passes low frequencies and attenuates the high frequency components of the input and a sharpening filter which attenuates the low frequency components. The frequency which marks the transition between the slightly attenuated and highly attenuated frequencies is the cutoff frequency: the frequency response at the cutoff frequency is 1 / sqrt(2). In the input controls this frequency is specified as a fraction of the Nyquist frequency. The sharpness of the transition between the slightly and highly attenuated frequencies increases as the order of the filter increases.

Gabor

A Gabor filter is a good choice for selecting the components of an image that contribute to a limited range of frequencies. The range selected has two components: one centered at a (kx, ky, kz) of

  cf * (cos(a) * sin(b), sin(a) * sin(b), cos(b))

where kx is the x frequency, ky is the y frequency, kz is the z frequency, cf is the central frequency magnitude specified in the dialog, a is the central frequency theta, b is the central frequency phi. The other is at the same distance from zero frequency but radially opposite from the first. Both components are limited by an elliptical Gaussian envelope. One axis of the envelope is oriented along the radial direction from the zero frequency to the central frequency. Another axis (the "theta direction") is parallel to the plane kz = 0 and perpendicular to the radial axis. The width of the envelope along the axes is given in term of the sigma for the Gaussian.

Gaussian

The frequency response of this filter is radially symmetric about the zero frequency and is the weighted sum of up to four Gaussian envelopes. The number of Gaussians summed to give the filter is controlled by the field labeled Number of filters to combine. For each Gaussian there is central frequency, a width specified in terms of the Gaussian's sigma, and the amplitude at the central frequency. One common choice for the amplitudes of the Gaussians ensures that the frequency response at zero frequency is one. This generates a filter that does not change the mean of the data.

Topics

Overview | Region processing | Filter types | Preprocessing | Edge handling | Output size


Preprocessing

The input region can be processed to remove an offset or trend before the data is padded and filtered. To display the controls for this processing, press the button labeled Set preprocessing in the main dialog. There are five types of processing that can be done; select one by pressing the appropriate toggle in the dialog. The processing options are:

None
The input is not modified before filtering and padding.
Subtract offset
The specified value is subtracted from all the input values.
Subtract mean
For each 3D (xyz) input region, the mean of the region is subtracted from all values in the region.
Remove linear trend
An average slope for each 3D (xyz) input region is estimated by averaging values from the first and last third of each dimension; the linear trend corresponding to that average slope and the mean of the region is subtracted from the input data. The algorithm used is the average slope method extended to three dimensions (Digital data analysis procedures, Bendat and Piersol, 1st Edition, 1971, page 288).
Remove trends up to order
A polynomial of the given order is fit to each 3D (xyz) input region. That polynomial evaluated at each input point is then subtracted from the input before padding and filtering.

Topics

Overview | Region processing | Filter types | Preprocessing | Edge handling | Output size


Edge handling

The dimensions of the input region can be extended by adding elements at the end of each dimension. This is typically done for two reasons:

To display the controls for the amount of padding and the values of the elements added, press the button labeled Set edge handling in the main dialog. For each dimension the Width field sets the number of elements that will be added. When the toggle lableled Use default width is on, the Width field will automatically be set so the padded size can be efficiently handled. There are three ways in which the values of the added elements are set. These are:

Pad with value
Use the given value for all the elements added to a dimension. The imaginary component of the value is only used if the input data is complex.
Pad with mean
Use the mean of the 3D (xyz) input region being processed when padding the dimension.
Pad with linear ramp
For each line in x, (or column in y or z-line in z) the padding elements added to the line (or column or z-line) are a linear combination of the first and last element of that input line (or column).

Topics

Overview | Region processing | Filter types | Preprocessing | Edge handling | Output size


Output size

The size of the region written to the output file may be different than the input size. The size is influenced by the controls to pad the input data before filtering, and the controls, described here, to trim the filtered result before saving it. To display the trimming controls, press the button labeled Set output size in the main dialog. This will open a dialog in which there is a set of controls for each dimension filtered. First the input size and the padded size of the region are listed. Below that are the toggles which control how the size in that dimension is trimmed. There are two mutually exclusive options for trimming:

Same as input size
Trim the dimension (if necessary) so the output has the same size in that dimension as the input region.
Trim padded size by
Removes the specified non-negative number of elements from the dimension. The removed elements are from the end of the dimension so elements added by padding are removed first and then, if necessary, elements that correspond to positions in the input region.

Topics

Overview | Region processing | Filter types | Preprocessing | Edge handling | Output size