EDGE DETECTION
Grégoire Malandain
Image edges may be defined by:
 Zerocrossings of the laplacian (Haralick's definition)
 Maxima of the gradient modulus in the gradient direction
(CannyDeriche's definition)
 others (see the huge related literature)
In this example, edges are considered to be the maxima of the gradient
modulus in the direction of the gradient.
A sagittal and an axial slice of a 3D MR data volume.
The edge detection is performed in 2D on each sagittal slice, and the
results are collected to form a 3D volume. Edges are superimposed on
the original 3D MR data volume. One may notice that the collection of
2D edges is not coherent along the third dimension.
"2D edges" superimposed on the original 3D MR data volume.
On the other hand, 3D edges look nicer.
3D edges superimposed on the original 3D MR data volume.
A small library (written in C)
allowing 2D or 3D edge detection with recursive filtering
(see Recursive filtering and edge tracking: two primary tools for 3D edge detection, Olivier Monga, Rachid Deriche, Grégoire Malandain, JeanPierre Cocquerez
Image and Vision Computing, 1991, 9 (4), pp.203214.)
and a
connected components extraction tools (which allows hysteresis thresholding)
are available for noncommercial uses only.
Original image 

Edge detection with Deriche's recursive filter
(~ exp(alpha x) )

%testedgespnm gregrmn.pgm gregrmn.a=alpha.ppm a alpha




alpha=0.5 
alpha=1.0 
alpha=1.5 
Edge detection with a recursive approximation of the Gaussian

%testedgespnm gregrmn.pgm gregrmn.s=sigma.ppm s sigma




sigma=1.0 
sigma=2.0 
sigma=5.0 
Hysteresis thresholding on previous results
(edge detection with a recursive approximation of the Gaussian)

low threshold = 10, high threshold = 20,
minimal size of connected component = 30

%testhysterpnm gregrmn.s=sigma.ppm gregrmn.s=sigma.lt=10.ht=20.ms=30.ppm lt 10 ht 20 ms 30




sigma=1.0 
sigma=2.0 
sigma=5.0 
Although it has be designed for edge detection (and thus performs
smoothing and first order derivatives), the filtering part of the code
can be used to compute image derivatives up to the second order
(e.g. curvatures).
Grégoire Malandain
Last modified: Mon Feb 12 15:12:45 MET 2001