Elder Zucker Edge Detector Code:

c1.m Returns c1, the minimum reliable scale for the gradient operator.
c2.m Returns c2, the minumum reliable scape for the laplacian operator.
g1x.m Returns gaussian smoothing mask in x direction for specified scale.
g1y.m Returns gaussian smoothing mask in y direction for specified scale.
g2x.m Returns partial second derivative mask in x direction.
g2xy.m Returns "cross-partial" second derivative mask.
g2y.m Returns partial second derivative mask in y direction.
gradient.m Returns the magnitude and angle of intensity gradient map in specified image with specified scale. If optional marker matrix is given, the matrix will be set to sd1 everywhere the gradient magnitude exceeds the critical value function of sd1 and left alone elsewhere and returned.
laplace.m
This function takes an image, a scale, the angle map, and optional marker matrix. It returns the laplacian map. If given, the optional marker matrix will be set to sd2 everywhere the gradient magnitude exceeds the critical value and left alone elsewhere.
steer1.m
The steering function for the first derivative.
steer2.m
The steering function for the second derivative.
runEZD2.m This is the main function that calls the rest of them. It takes two inputs, an image matrix and an optional "noise sigma." It returns the edge map in unit8 units, the laplacian of gaussian of the image, the minimum reliable scale of each pixel, and a blur estimate at the edge points .

Many Thanks to Anat Capsi for posting her code on the web. This code represents a MAJOR revision of her Elder-Zucker edge detector. I reset the c1 and c2 functions to match the published numbers in Elder and Zucker's paper (see References), and I eliminated some non-functioning portions of her code. In addition, I added the blur estimation portion of runEZD2.m


Last modified: Tue Nov 28 21:53:40 PST 2000