# nonMaxSuprList

## PURPOSE

Applies nonmaximal suppression to a list.

## SYNOPSIS

function [subs,vals,keep] = nonMaxSuprList( subs, vals, radii,thresh, maxn, flag)

## DESCRIPTION

     Applies nonmaximal suppression to a list.

     See nonMaxSupr for more information.  Has the same effect as nonMaxSupr
     except it operates on a list of position/values pairs.  Running time is
     n^2 in the number of such pairs.  For comparison running time of
     nonMaxSupr is ord( sum( size(I,d)*radii(d) ).

     This function has an additional parameter - flag. If flag==1, then all
     locations that are not strictly the biggest in their window are
     suppressed (ie, keeps max only if it is UNIQUE).  This can be useful for
     large flat regions -- nonMaxSupr(ones(30),3) does no suppression since
     all values are equal in each window, but nonMaxSuprList(ones(30),3) w
     flag==1 suppresses all locations. If flag==2 ties are broken randomly (in
     fact this allows for slightly faster execution).

     USAGE
      [subs,vals,keep] = nonMaxSuprList( subs, vals, radii, ...
        [thresh], [maxn], [flag] )

     INPUTS
      subs       - subscripts of point locations (m x d)
      vals       - values at point locations (m x 1)
      radii      - suppression window dimensions
      thresh     - [] minimum value below which not to look for (or [])
      maxn       - [] return at most maxn of the largest vals
      flag       - [] suppress equal vals (see above)

     OUTPUTS
      subs       - subscripts of non-suppressed point locations (n x d)
      vals       - values at non-suppressed point locations (n x 1)
      keep       - indicies of kept locations from subs (n x 1)

     EXAMPLE

     See also SUBSTOARRAY, NONMAXSUPR, NONMAXSUPRWIN

     Piotr's Image&Video Toolbox      Version 2.12
     Copyright 2012 Piotr Dollar.  [pdollar-at-caltech.edu]
     Please email me if you find bugs, or have suggestions or questions!
     Licensed under the Simplified BSD License [see external/bsd.txt]