2

I'm having some conceptual confusion with regards to first and second order derivative edge detection methods. When you run a first or second derivative order filter, you get a greyscale output with gradient magnitude and rate of change of the gradient at each pixel location respectively (right?).

To find edges from a first order derivative you look for the extrema, and to find edges in second order derivatives you look for zero-crossings. If you take these values in either method, you should end up with a binary image with single pixel edges.

How does thresholding factor into this? I'm assuming you are not just applying a threshold to the greyscale output of, say a first order sobel; I'm guessing the threshold decides how high your maxima or low your minima have to be before you accept them. Is this right?

How would this work for second order derivative outputs? How can you set a threshold for how zero a zero is?

  • I must say that this is a difficult question. The second derivative is extremely noisy because differentiation enhances the noise. So a threshold that kills noise will also kill the signal, as you are interested in the *low* values. –  Feb 21 '19 at 13:20

0 Answers0