Edge Detection (50 points)
It's important to evaluate pattern recognition methods. In this exercise, you will evaluate edge detection in 1D using the Laplacian edge detector. Remember that the Laplacian edge detector locates edges by zero crossings. You will use a double step edge, that is an edge that goes from 0 to 1 at position x0 and from 1 to 0 at position x1>x0.
The variables controlling the step edge are its width w, the kind of noise (uniform or Gaussian), and its level of noise s (for uniform noise, noise is distributed over [-s,s], for Gaussian noise, s is the standard deviation). Represent the step edge as a 512 element array and center the edge at pixel 256. For the edge detector, the relevant parameter is the width of the Gaussian used for smoothing.
Your application requires that edges are detected with 99% probability within +/- 3 pixels of their true location, and that there are no false edges detected outside that range with 99% probability. Try to determine experimentally the range of real-world situations (ranges of w and s) over which you can satisfy these requirements. Note that this involves determining a good value of the smoothing parameter r for each w and s.
Clearly present and discuss your results.
Implement a corner detector using Hessian matrix (the matrix of second derivatives).
Apply non-maxima suppression (discussed for Canny edge detector) for the ridge filter.