OpenDX - Documentation
Full Contents QuickStart Guide User's Guide User's Reference
Previous Page Next Page Table of Contents Partial Table of Contents Index Search





Filters a field.


output = Filter(input, filter, component, mask);


Name Type Default Description
input field none data to be filtered
filter value or string "gaussian" filter to be used
component string "data" component to be operated on
mask value or string "box" rank-value filter mask


Name Type Description
output field filtered data

Functional Details

The specified filter can be convolution or rank-value type.

Convolution filters, as the name implies, perform a convolution of the filter coefficients with the input data (i.e., the output value at a given point is the sum of the product of the filter coefficients and the corresponding values neighboring the point in question).

Rank-value filters sort all of the elements under a mask surrounding the point in question and either select or interpolate the value specified by the given rank. For "min," "max," and "median" (special cases of rank-value filters), the rank values are respectively 1, n, and (n + 1)/2, where n is the number of nonzero elements in the mask.

Convolution filters are useful for neighborhood smoothing, edge detection, and other gradient-based operations. Rank-value filters are useful for random-noise removal and morphological operations.


is the object to be filtered. Each field containing the component to be filtered must also contain both a "positions" and a "connections" component. The "connections" component must be regular.


specifies, by name, the filter to be used on input. See Table 2 for valid names.


specifies the field component to be filtered. By default, Filter operates on "data." To filter an image, this parameter should specify "colors."

If the component to be filtered contains several channels (e.g., red, green, and blue in an image), each channel is filtered independently.

Table 2 defines the filters and masks that can be specified by name. While most of these are 2-dimensional, some are also available in 1- and 3-dimensional versions (as indicated by "1d" or "3d" after their names). If possible, the module selects a filter that matches the dimensionality of input. However, if a filter of lower dimensionality is available, it can (and must) be specified by appending "1d" or "2d" to the name. That is, to specify a filter of lower dimensionality, the specification must be explicit.

Table 2. Filter Names
The names listed here are all valid specifications for the filter parameter. The specification is not case sensitive.
Filter Name Description
4-connected [ [0 1 0] [1 1 1] [0 1 0] ] / 5
8-connected [ [ 1 1 1 ][ 1 1 1 ][ 1 1 1 ] ] / 9 = box:2d
6-connected 3-D analog of 4-connected
26-connected 3-D analog of 8-connected
box Box filter
gaussian Same as gaussian:3x3
gaussian:2d Same as gaussian:3x3; can be used to force a 2-D gaussian to be applied to 3-D data.
gaussian:3x3 3 × 3 Gaussian, σ. = 1.0
gaussian:5x5 5 × 5 Gaussian, σ. = 1.0
gaussian:7x7 7 × 7 Gaussian, σ. = 1.0
laplacian Same as laplacian:2d
smoothed Same as prewitt



  1. When a lower-dimensional filter is applied to higher-dimensional input, the input is separated into lower-dimensional units that are filtered and then reassembled into a higher-dimensional structure. For example, a 2-dimensional filter applied to a 3-dimensional field will result in individual slices of the input being filtered and then restacked.

  2. Arbitrary filter kernels and masks may also be specified as matrices.

  3. If the value specified by filter is a matrix, the module performs convolution filtering and uses the values given as the filter coefficients. Filters must have odd dimensions (e.g., 5 × 5), since the active point is defined as the central point in the filter.

  4. If the value specified in filter is a scalar or one of the strings "min," "median," or "max," the module performs rank-value filtering and uses the value of mask for sorting the elements.

    Masks, like filters, must have odd dimensions (e.g., 5 × 5). When specifying a mask, remember that nonzero elements in the mask matrix signify inclusion; zeros signify exclusion. In this way, the built-in matrices (e.g., "box") can be used interchangeably as filters or masks.

  5. Data along the boundary are replicated to fill the overlap region for the filter.


Modifies the component specified by component. All other input components are propagated to the output.

Example Visual Program

See Also

 Compute,  Morph

Full Contents QuickStart Guide User's Guide User's Reference

[ OpenDX Home at IBM | ]