Classes
contrib/oxl/osl/osl_edge_detector.h File Reference

Charlie's topological edge detector. More...

#include <osl/osl_canny_port.h>
#include <osl/osl_edge_detector_params.h>
#include <vil1/vil1_image.h>

Go to the source code of this file.

Classes

struct  osl_edge_detector

Detailed Description

Charlie's topological edge detector.

A class for performing topologically-accurate edgel detection. NB: this implementation is (unintentionally) stochastic, so you don't necessarily get the same results from the same image.

The basic implementation is based on that described in Canny's thesis in that we compute the norm of the gradient, but then we use non-maximal suppression dynamically to set the edge strength thresholds. Non-maximal suppression is actually done using a variant of Tsai-Fu thinning, and not as described in Canny's thesis.

Full documentation is given in INRIA technical report 2444, 1994.

Author:
Charlie Rothwell - 5/10/94 INRIA, Sophia Antipolis
    Modifications:
            CAR March 1995: improved memory management so that computation
               time is reduced. Re-use of certain large arrays. Tried to
               re-write Set_thresholds() to use Delauney triangulation rather
               than Chamfer filtering. This didn't work as computation time
               became far too high.
  
            JLM May 1995: Added a mask in Compute_gradient to support
               edge detection within a polygonal region. Should add a similar
               test in smoothing and derivative iterations for maximum
               efficiency, but it isn't clear that there would be a big overall
               gain, given the computation of IsMasked(x,y).
  
            JLM May 1995: Added a histogram of edgel strengths as an
               additional output to support edgel change detection.  The
               histogram is constructed in Set_thresholds
  
            JLM May 1995 Added a new Do_edge_detector signature
               to output an edgel group which bundles edgel chains and
               gradient statistics together.
  
            JLM May 1997 Modified the formation of the gradient histogram
                         computation so that values are accumulated only
                         along edgel chains.  New accumulation is in
                         Follow_curves(edges). The old code is still in place
                         but commented out. (Look for "May")  The old code
                         just histogrammed the gradient magnitude.
            JLM June 1997 Found a bug in the above change which failed if
                         ghist_ is NULL.
            JLM Dec 1997 Moved sigma_, low_, gauss_tail_ and verbose_
                         up to osl_edge_detector_params and added new syle
                         constructors and execution
   

Definition in file osl_edge_detector.h.