contrib/gel/gevd/gevd_step.h File Reference
Detailed Description
detection of step profiles in the intensity image
Operator to implement Canny edge detector which finds elongated step contours with dG. Then junctions are found by extending from end points of dangling contours.
The recipe is:
- Convolution with Gaussian with sigma typically = 1, to well-condition the surface before taking first derivative. Result is a smoothed image.
- Convolution with first derivative, or first difference. Result is a gradient image. Canny proves that first-derivative of the Gaussian is the optimum filter to detect elongated step profiles.
- Optionally estimate sensor/texture sigma, if given noise sigma is a negative interpolation factor -k in range -[0 1]. noise_sigma = (1-k)*sensor_sigma + k*texture_sigma. Sensor and texture sigmas are estimated from the histogram of weak step edges, detected in an ROI centered on gradient image. (see Step constructor documentation in Step.C - JLM)
- Non Maximum suppression in the direction of local gradient, to detect pixels with maximum local slope, above a priori noise response. Result is connected contours, width < 2, broken only at junctions with weaker chains. Also obtain subpixel accuracy normal to the contour.
- Optionally extend from end points of contours to search for maximum slope in the direction normal to the dangling contours, above some factor of the noise response. Result is a simple detection of all strong junctions.
Input: Intensity image, smoothing sigma, sensor/texture noise sigma and threshold factors for detecting contour/junction edge elements.
Output: Magnitude, direction, location of step pixels, forming a connected network of contours.
Complexity: O(|pixels|) time and space for convolutions. O(|edgels|) time for iterative extension to recover junctions.
Authors
John Canny (1986) SM Thesis
Chris Connolly (1987) use directional 1st-difference
Van-Duc Nguyen (1989) add subpixel location, extension to find junctions
Arron Heller (1992) translate from CLOS to C++
Van-Duc Nguyen (1995) add noise estimation, use FloatOperators.
Joe Mundy (1997) expanded comments on some methods. Added gradient
magnitude, grad_mag, and gradient direction angle
buffer, angle, to cache between edgel detection phases.
Definition in file gevd_step.h.
#include <vcl_iosfwd.h>
Go to the source code of this file.
Generated on Thu Nov 20 05:16:08 2008 for contrib/gel/gevd by
1.5.1