Page 233 -
P. 233
212 4 Feature detection and matching
ations. The gradient of the smoothed image can therefore be written as
J σ (x)= ∇[G σ (x) ∗ I(x)]=[∇G σ ](x) ∗ I(x), (4.20)
i.e., we can convolve the image with the horizontal and vertical derivatives of the Gaussian
kernel function,
2
∂G σ ∂G σ 1 x + y 2
∇G σ (x)=( , )(x)=[−x − y] exp − (4.21)
∂x ∂y σ 3 2σ 2
(The parameter σ indicates the width of the Gaussian.) This is the same computation that
is performed by Freeman and Adelson’s (1991) first-order steerable filter, which we already
covered in Section 3.2.3.
For many applications, however, we wish to thin such a continuous gradient image to
only return isolated edges, i.e., as single pixels at discrete locations along the edge contours.
This can be achieved by looking for maxima in the edge strength (gradient magnitude) in a
direction perpendicular to the edge orientation, i.e., along the gradient direction.
Finding this maximum corresponds to taking a directional derivative of the strength field
in the direction of the gradient and then looking for zero crossings. The desired directional
derivative is equivalent to the dot product between a second gradient operator and the results
of the first,
2
S σ (x)= ∇· J σ (x)=[∇ G σ ](x) ∗ I(x)]. (4.22)
The gradient operator dot product with the gradient is called the Laplacian. The convolution
kernel
2
2
1 x + y 2 x + y 2
2
∇ G σ (x)= 2 − exp − (4.23)
σ 3 2σ 2 2σ 2
is therefore called the Laplacian of Gaussian (LoG) kernel (Marr and Hildreth 1980). This
kernel can be split into two separable parts,
1 x 2 1 y 2
2
∇ G σ (x)= 1 − G σ (x)G σ (y)+ 1 − G σ (y)G σ (x) (4.24)
σ 3 2σ 2 σ 3 2σ 2
(Wiejak, Buxton, and Buxton 1985), which allows for a much more efficient implementation
using separable filtering (Section 3.2.1).
In practice, it is quite common to replace the Laplacian of Gaussian convolution with a
Difference of Gaussian (DoG) computation, since the kernel shapes are qualitatively similar
(Figure 3.35). This is especially convenient if a “Laplacian pyramid” (Section 3.5) has already
been computed. 4
In fact, it is not strictly necessary to take differences between adjacent levels when com-
puting the edge field. Think about what a zero crossing in a “generalized” difference of
Gaussians image represents. The finer (smaller kernel) Gaussian is a noise-reduced version
of the original image. The coarser (larger kernel) Gaussian is an estimate of the average in-
tensity over a larger region. Thus, whenever the DoG image changes sign, this corresponds
to the (slightly blurred) image going from relatively darker to relatively lighter, as compared
to the average intensity in that neighborhood.
4 Recall that Burt and Adelson’s (1983a) “Laplacian pyramid” actually computed differences of Gaussian-filtered
levels.