Box filter

From Eigenvector Research Documentation Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Purpose

Image or matrix (N-way) filtering (spatial filtering with a moving window)

Synopsis

xf = box_filter(x,win,options)

Description

BOX_FILTER is a spatial filter that filters and despises based on a moving window (or box). It tends to be slow compared to filter methods that can be vectorized.

Inputs

  • x = MxNxP data class 'double' or 'dataset'. If 'dataset' it must x.type=='image' (see BUILDIMAGE). If 'double' it must be MxNxP (P can = 1 or N-way arrays).
  • win = a 1 or 2 element vector of odd integers corresponding to the window width of the box filter. If scalar, (win) is set to win = [win win].

Outputs

  • xf = Filtered image class 'dataset' or matrix (or N-way array) class 'double.'

Options

options = a structure array with the following fields:

  • algorithm: [ {'mean'} | 'median' | 'max' | 'min' | 'despike' | 'meantrimmed' | 'mediantrimmed' ] governs filter method.
  • window movement: [ {'bands'} | 'rectangle' ], 'bands' moves vertically then horizontally over a single window across the image or slab, and 'rectangle' moves a rectangular window across the image or slab.

despike parameters

  • tol: { [] } if empty then despike uses the std(median(x)) within each window to define the tolerance within the window. If tol>0 scalar, then tol defines the tolerance for all the windows. If tol<=0, then tol is estimated by the mean absolute deviation of madc(x.data(:)) and is the tolerance used for all the windows (see MADC).
  • dsthreshold: [ {2} ] Threshold used for the 'despike' algorithm. In contrast to replacing all values with the meidan (e.g., for options.algorithm = 'median'), 'despike' replaces only values outside |x-median(x)|>options.dsthreshold*options.tol with the median. (see options.tol)
  • trbflag: [ {'middle'} | 'bottom' | 'top' ] top-or-bottom flag. For trbflag = 'middle' the filter replaces values outside |x-median(x)|>dsthreshold*options.tol) with the median. For trbflag = 'bottom' the filter replaces values outside (x-median(x))>dsthreshold*options.tol with the median. For trbflag = 'top' the filter replaces values outside (median(x)-x)>dsthreshold*soptions.tol with the median.

ntrim parameters

  • ntrim: when algorithm = 'meantrimmed' or 'mediantrimmed', (ntrim) is the input (n) to the functions MEANTRIMMED or MEDIANTRIMED {default = 2}. For windowmovement = 'bands', the filter is applied to a window of win(1) rows down each column followed by applying across a window of win(2) columns to each row. For windowmovement = 'rectangular', the filter is applied the windows of size win(1) by win(2) directly (uses more pixels in each filter than 'bands').

See Also

maxautofactors, spatial_filter, windowfilter, madc