# modefilt1

## PURPOSE

One-dimensional mode filtering.

## SYNOPSIS

function y = modefilt1( x, s )

## DESCRIPTION

     One-dimensional mode filtering.

     Applies a width s one-dimensional mode filter to vector x. That is each
     element of the output y(j) corresponds to the mode of x(j-r:j+r), where
     r~s/2. At boundary regions, y is calculated on smaller windows, for
     example y(1) is calculated over x(1:1+r).  Note that for this function to
     make sense x should take on only a small number of discrete values
     (running time is actually proportional to number of unique values of x).
     This function is modeled after medfilt1, which is part of Matlab's
     'Signal Processing Toolbox'.

     USAGE
      y = modefilt1( x, s )

     INPUTS
      x   - length n vector
      s   - filter size

     OUTPUTS
      y   - filtered vector x

     EXAMPLE
      x=[0 1 0 0 0 3 0 1 3 1 2 2 0 1]; s=3;
      xmedian = medfilt1( x, s ); % may not be available
      xmode = modefilt1( x, s );
      [x; xmedian; xmode]

     See also MEDFILT1

     Piotr's Image&Video Toolbox      Version 2.35
     Copyright 2009 Piotr Dollar.  [pdollar-at-caltech.edu]
     Please email me if you find bugs, or have suggestions or questions!
     Licensed under the Lesser GPL [see external/lgpl.txt]

## CROSS-REFERENCE INFORMATION

This function calls:

- localSum Fast routine for box filtering.
- sub2ind2 Improved version of sub2ind.

This function is called by: