Is Laplacian of Gaussian for blob detection or for edge detection?

hkchengrex’s answer is fairly complete, but I don’t completely agree. Maybe I’m a bit of a stickler for correct nomenclature. A detector is something that yields a strong response at the location of the thing to be detected.

The Laplacian of Gaussian (LoG) is not an edge detector, since it has zero crossings at (near*) edges. But it can be used to construct an edge detector. The edge detector so constructed is the Marr-Hildreth edge detector. Because of this, it often gets classified under edge detectors. To me, it’s a line detector.

The Laplace is the sum of second derivatives (the trace of the Hessian matrix). An image convolved with the LoG is the same as the Laplacian of an image convolved with a Gaussian:

img * [ d^2/dx^2 G(x,y) + d^2/dy^2 G(x,y) ] = d^2/dx^2 [ img * G(x,y) ] + d^2/dy^2 [ img * G(x,y) ]

Thus, the LoG yields a strong response at extrema in the image (where the second derivative is maximal). This happens at the peaks of “blobs”, and along the ridges of lines.

Let’s take this simple test image:

image with blocks, lines and dots

and apply the LoG to it:

LoG of image above

Here, mid-gray are pixels with a value of 0. As can be seen, it has strong (negative) response along the thin line and on the small dots. It also has medium responses around the edges of the wider objects (negative inside the edge, positive outside); the zero crossings are close to where the edges are.

We can threshold this image to detect the thin line and the dots:

LoG < 65

(thresholding the magnitude yields the same result). We can lower the threshold to see that medium responses happen around edges of interest:

abs(LoG) < 20

It takes more than a simple threshold to obtain edges. In contrast, the gradient magnitude (first derivatives are strong at the location of edges) can be thresholded to obtain edges:

gradmag < 50

The gradient magnitude is not useful to detect lines, as it detects the two edges along the lines, rather than the line itself. The gradient magnitude above is computed using Gaussian derivatives (Sobel is another option, but not as precise).

Note that the Canny edge detector is based on the gradient magnitude, it adds non-maximum suppression and hysteresis thresholding to make the detections thin and meaningful.


* The second derivative has a zero crossing at the inflection points (which can be taken as the true location of edges). However, the Laplacian is the sum of second derivatives. If you think of the second derivative in the direction of the gradient, its zero crossing will be well localized. But now add the second derivative in the perpendicular direction (along the edge). This second derivative will be zero along a straight edge, negative along a convex curved edge (e.g. the edge of a circle), and positive along a concave curved edge. Adding these two values will therefore cause the zero crossings to shift on curved edges, the stronger the curvature, the more the zero crossing will deviate from its true location.

Leave a Comment