ImageDev

Edge Marking

This group provides operators for segmenting or sharpening edges.

Introduction to Edge Marking

With a gradient (for example, GradientOperator2d), resp. Laplacian (for example, RecursiveLaplacian2d), operator, a one-dimensional edge is defined as the local maximum of the magnitude of the first derivative, resp. the zero crossing of the second derivative.

Gradient Edge Marking

Unfortunately, this definition cannot be extended to two-dimensional or three-dimensional functions. In fact, an edge appears like a crest line on the magnitude of the gradient image and this leads us to define an edge as all the points whose gradient magnitude is maximum along the direction of the gradient (the direction across the edge). This method, referred to as "non-maxima suppression", provides thin lines that are much more convenient to handle.

Finally, we can take into account the specific geometry of a contour. Its pixels are connected by using a more sophisticated threshold: the threshold by hysteresis (HysteresisThresholding).

This is in fact an intuitive method. We choose a high and low threshold, $t_h$ and $t_l$, and decide that:
<b> (a) </b>
(a)
<b> (b) </b>
(b)
<b> (c) </b>
(c)
Figure 1. Two different ways to threshold a gradient:
(a) gradient image, (b) classic thresholding does not detect enough edges if threshold is too high (yellow) or reveals noise if too low (red), (c) thresholding by hysteresis

Laplacian Edge Marking

Binary images of Laplacian zero-crossings result in closed thin lines as they correspond to boundaries between positive and negative regions.