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 |
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.
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.
1.7.5.1