Filter Types

The Filter properties allow you to apply a digital filter to 3D grid visualizations in the 3D View window. Filters perform mathematical operations on data values within a specific neighborhood of grid nodes, altering the visual rendering output without modifying the underlying source 3D grid file.

Because filters are applied directly to the visualization (and not the parent 3D grid file), you can apply different filters to different visualizations of the exact same grid.

Filters are available for the following 3D visualization types: Volume Render, Block Render, Isosurface, Image Slice, and Contour Slice.

Golden Nugget : To quickly apply identical filter settings across multiple visualizations, use the Home | Clipboard | Copy Format and Paste Format commands.

General Filter Properties

Select a 3D visualization in the Contents window, then click the Filter tab in the Properties window to access these properties:

  • Active: Check this box to enable filtering for the selected visualization (default is unchecked).
  • Filter type: Select the mathematical filter algorithm from the dropdown list.
  • Orientation: Specifies the directional application of the filter:
    • XY planes, XZ planes, YZ planes: Orients a 2D filter along the specified plane orientation and applies it slice-by-slice.
    • 3D: Applies a full three-dimensional volumetric filter across all nodes (default).
  • Kernel size: Defines the size of the convolution neighborhood array centered on the node being calculated. Options are limited to odd integers: 3, 5, 7, and 9. For example, a kernel size of 3 represents a 3x3x3 cubic sub-array of nodes in 3D space. Note: Not all filters use a kernel size, so this property may be hidden depending on the selected filter.

Note on Isosurfaces and Contour Slices: Applying a filter to an isosurface or contour slice may adjust the grid data range so that the original isovalue or contour range is no longer valid, causing the visualization to disappear. Surfer automatically adjusts the isovalue or contour levels to fit within the newly filtered range. If you switch to a different filter or turn filtering off, the original isovalue or contour levels are not automatically reinstated; you may need to manually reset your isovalue or contour range.

Linear Convolution Filters

Linear convolution filters calculate weighted averages of neighboring grid nodes.

Filter Type

Description

Property Options

Average (Rectangular)

Moving average across a rectangular neighborhood where all weights are 1 (default filter).

Kernel size: 3, 5, 7, 9

Average (Spherical)

Moving average across an axis-aligned spherical neighborhood.

Kernel size: 3, 5, 7, 9

Distance

Distance-weighted averaging filter resulting in concentric ellipsoid iso-weights.

Kernel size: 3, 5, 7, 9

Distance (Inverse)

Distance-weighted averaging filter resulting in concentric spherical iso-weights.

Kernel size: 3, 5, 7, 9

Distance 'Inf Norm'

Distance-weighted averaging filter resulting in concentric shoebox iso-weights.

Kernel size: 3, 5, 7, 9

Gauss

Smooths or blurs an image using a Gaussian bell-shaped curve.

Kernel size: 3, 5, 7, 9; Alpha

Laplacian Edge Detect

Used for edge detection utilizing a local convolution kernel.

Kernel size: 3, 5, 7, 9

Unsharp Mask

Sharpens an image by blurring it, subtracting the blur from the original, and adding the difference back.

Kernel size: 3, 5, 7, 9; Alpha; Sharpness

Nonlinear Order & Moment Statistics Filters

  • Interquartile Range: Sets the node to the local interquartile range (75th minus 25th percentile).
  • Maximum (dilation): Sets the node to the maximum value in the neighborhood, similar to morphological dilation.
  • Minimum (erosion): Sets the node to the minimum value in the neighborhood, similar to morphological erosion.
  • Median: An edge-preserving smoothing filter that sets the node to the median (50th percentile) value in the neighborhood.
  • Quartile (lower / upper): Sets the node to the lower quartile (25th percentile) or upper quartile (75th percentile).
  • Range: Sets the node to the local data range (maximum minus minimum).
  • Rank: Sets the node to its rank within the local neighborhood.
  • Central Moment: Sets the node to the local centralized moment (variance).
  • Coefficient of Variation: Sets the node to the local coefficient of variation (standard deviation divided by the average).
  • Standard Deviation: Sets the node to the local standard deviation.

Edge Detection & Other Filters

  • Prewitt / Sobel Max / Sobel Norm: Edge-detection filters that compute directional derivatives over neighboring nodes.
  • Mean Removal: A high-pass filter that subtracts the neighborhood mean to emphasize outliers.
  • Median Difference: Sets the node to the local median difference ($Z_{\text{in}} - \text{Median}$) to emphasize outliers.
  • Threshold Averaging: Sets the node to the local threshold average.
  • Threshold Crossing: Sets the voxel to 1 if a value crosses the specified threshold within the neighborhood; otherwise sets to 0.
  • Zero Crossing: Identifies where grid values change from positive to negative. Shows a 0 if there is no change in sign in the neighborhood, and a 1 if there is a change. Note: If there is no change in sign for the entire grid, all node values will be 0, which may cause Contour Slices or Isosurfaces to disappear due to lack of data variation.
  • Histogram Equalization: Modifies the visual distribution based on the histogram.

Nodal Filters

  • Bounding: If a value is above the specified Upper bound, it is reduced to the bound. If it is below the Lower bound, it is increased to the bound.
  • Brightness & Contrast: Modifies the image utilizing specified Brightness and Contrast factors.
  • Gamma Correction: Performs gamma correction where values <1 reduce gamma and >1 increase gamma.

Edge Handling

The Edge handling options specify how the filter behaves when the calculation kernel overhangs the outer boundary of the 3D grid.

  • Replicate: Neighborhood nodes at the edge of the input lattice are mathematically replicated outward (default).
  • NoData: Any lattice node with a neighborhood that overlaps the edge is assigned as NoData (blanked).
  • Ignore: Only the available neighborhood within the grid is used; off-lattice nodes are ignored in calculations.
  • Mirror: Treats out-of-range coordinates as a mirrored reflection of the in-range coordinates.
  • Cyclic wrap: Sets off-lattice nodes by wrapping around to the opposite side of the lattice (e.g., overhang on the right face wraps to sample nodes on the left face).
  • Fill: Fills the area beyond the edge with a user-specified constant. When selected, the Edge fill property appears to define this constant (default is 0).

NoData Handling

The NoData handling options specify how the filter treats NoData (blanked) nodes already present within the 3D grid.

  • Leave alone: Modifies the filter to completely ignore the NoData node during neighborhood calculations, but preserves the original NoData node location in the final output (default).
  • Expanded: If the filter's neighborhood contains one or more NoData nodes, the output node is assigned as NoData. This causes NoData regions to grow with every filter application.
  • Ignore: Filters across NoData nodes by ignoring them in calculations, effectively using simultaneous filtering and interpolation to shrink NoData regions.
  • Fill: Replaces all NoData nodes with a user-specified constant before filtering. When selected, the NoData fill property appears to define this constant (default is 0).

Filter References

  • Crane, R. (1990) A Simplified Approach to Image Processing. Prentice-Hall PTR, Upper Saddle River, NJ, 317 pp. ISBN 0-13-226416-1.
  • Gonzalas, R, & Wintz, P. (1983) Digital Image Processing. Addison-Wesley Publishing Company, Reading, MA, 431 pp. ISBN 0-201-02597-3.
  • Nikolaidis, N, & Pitas, I. (2001) 3-D Image Processing Algorithms. John Wiley & Sons, New York, NY, 176 pp. ISBN 0-471-37736-8.
  • Pitas, I. (2000) Digital Image Processing Algorithms and Applications. John Wiley & Sons, New York, NY, 419 pp. ISBN 0-471-37739-2.

See Also

3D View Window

Volume Render

Isosurface

Image Slice

Contour Slice