For edge detection, is first derivative sufficient? If not, then can second derivative be sufficient?
Answers
A) First Order Derivative Edge Detection. Generally, the first order derivative operators are very sensitive to noise and produce thicker edges.
a.1) Roberts filtering: diagonal edge gradients, susceptible to fluctations. Gives no information about edge orientation and works best with binary images.
a.2) Prewitt filter: The Prewitt operator is a discrete differentiation operator which functions similar to the Sobel operator, by computing the gradient for the image intensity function. Makes use of the maximum directional gradient. As compared to Sobel, the Prewitt masks are simpler to implement but are very sensitive to noise.
a.3) Sobel filter: Detects edges are where the gradient magnitude is high.This makes the Sobel edge detector more sensitive to diagonal edge than horizontal and vertical edges.
Sobel and Prewitt methods are very effectively providing good edge maps.
a.4) Frei-Chen method: Frei and Chen have adapted the Sobel’s model and proposed a pair of isotropic operator which makes K = SQRT(2) . This makes the gradient for horizontal, vertical, and diagonal edges the same at the edge center. The isotropic smoothed weighting operator proposed by Frei and Chen can easily pick up subtle edge detail and produce thinner edge lines, but it also increase the possibility of erroneously detect noise as real edge points.
a.5)Kirsch compass kernel: Is a non-linear edge detector that finds the maximum edge strength in a few predetermined directions. Kirsch edge operators have been proposed for image segmentation of mammographic images.
a.6) Robinson compass filtering: Similar to the Kirsch masks, with mask coefficients of 0, 1, and 2.
Kirsch and Robinson methods require more time for calculation and their results are not better than the ones produced by Sobel and Prewitt methods.
a.7) Nevatia / Babu: detects edges in various degree increments
B) 2nd Order Derivative Edge Detection. If there is a significant spatial change in the second derivative, an edge is detected. 2nd Order Derivative operators are more sophisticated methods towards automatized edge detection, however, still very noise-sensitive.
As differentiation amplifies noise, smoothing is suggested prior to applying the Laplacians. In that context, typical examples of 2nd order derivative edge detection are the Difference of Gaussian (DOG) and the Laplacian of Gaussian (LoG) (e.g.the Marr - Hildreth method).
Image derivatives are used in motion estimation and object tracking in video.
Concluding, I personally believe that a good practice in order to choose the optimal edge detection method is to first identify the edge profile of the objects to be detected in an image (step edges / ramp edges /line or roof edges). Which edge detection method to use, it also strongly depends from the application domain as well...