% Edge OR Corners detecting OR image smoothing using SUSAN technique. % % There are three different types of output: % 1. Logical (mask) array - This is the deffault type used with the edge detection % 2. Uint8 array - When '-ei' or '-ci' options are used % 3. Mx2 array of doubles with the indice corner coordinates % % Usage: % OUT = susan(GRAY, [options]); % % Where GRAY is a MxN intensity image % and [options] is any of the following '-opt' strings: % % -e : Edges mode - output a mask (logical) edges image [default] % -ei: Edges Image mode (overlay edges on input image) % -s : Smoothing mode % -c : Corners mode - output a Mx2 corners matrix with (image x,y corners coordinates) % % -ci: Corners Image mode (overlay corners on input image) % % See source code for more information about setting the thresholds % -t : Brightness threshold, all modes (default=20) % -d : Distance threshold, smoothing mode, (default=4) (use next option instead for flat 3x3 mask) % -3 : Use flat 3x3 mask, edges or smoothing mode % -n : No post-processing on the binary edge map (runs much faster); edges mode % -q : Use faster (and usually stabler) corner mode; edge-like corner suppression not carried out; corners mode % -b : Mark corners/edges with single black points instead of black with white border; corners or edges mode % -p : Output initial enhancement image only; corners or edges mode (default is edges mode) % SUSAN Version 2l (C) 1995-1997 Stephen Smith, DRA UK. steve@fmrib.ox.ac.uk % % Example1: Show original image overlain with detected edges % if IMG is a MxN image % edges = susan(IMG,'-ei'); % image(edges) % % Example2: Show edges only % edges = susan(IMG,'-e'); % image(edges) % imshow works better % % Example3: Show original image overlain with detected corners % edges = susan(IMG,'-ci'); % image(edges) % % Author (of the mexification (not so minor work)) % Joaquim Luis, jluis@ualg.pt % % Original C code and algorithm description at: % http://www.fmrib.ox.ac.uk/~steve/susan/