# Difference of Gaussians

In imaging science, difference of Gaussians is a feature enhancement algorithm that involves the subtraction of one blurred version of an original image from another, less blurred version of the original. In the simple case of grayscale images, the blurred images are obtained by convolving the original grayscale images with Gaussian kernels having differing standard deviations. Blurring an image using a Gaussian kernel suppresses only high-frequency spatial information. Subtracting one image from the other preserves spatial information that lies between the range of frequencies that are preserved in the two blurred images. Thus, the difference of Gaussians is a band-pass filter that discards all but a handful of spatial frequencies that are present in the original grayscale image.[1]

## Mathematics of difference of Gaussians

Comparison of difference of Gaussian with Mexican hat wavelet

Given a m-channels, n-dimensional image

$I:\{\mathbb{X}\subseteq\mathbb{R}^n\}\rightarrow\{\mathbb{Y}\subseteq\mathbb{R}^m\}$

The difference of Gaussians (DoG) of the image $I$ is the function

$\Gamma_{\sigma_1,\sigma_2}:\{\mathbb{X}\subseteq\mathbb{R}^n\}\rightarrow\{\mathbb{Z}\subseteq\mathbb{R}\}$

obtained by subtracting the image $I$ convolved with the Gaussian of variance $\sigma^2_2$ from the image $I$ convolved with a Gaussian of narrower variance $\sigma^2_1$, with $\sigma_2 > \sigma_1$. In one dimension, $\Gamma$ is defined as:

$\Gamma_{\sigma_1,\sigma_2}(x) = I*\frac{1}{\sigma_1\sqrt{2\pi}} \, e^{-(x^2)/(2\sigma^2_1)}-I*\frac{1}{\sigma_2\sqrt{2\pi}} \, e^{-(x^2)/(2\sigma_2^2)}.$

and for the centered two-dimensional case :

$\Gamma_{\sigma,K\sigma}(x,y) = I*\frac{1}{2\pi \sigma^2} e^{-(x^2 + y^2)/(2 \sigma^2)} - I*\frac{1}{2\pi K^2 \sigma^2} e^{-(x^2 + y^2)/(2 K^2 \sigma^2)}$

which is formally equivalent to:

$\Gamma_{\sigma,K\sigma}(x,y) = I*(\frac{1}{2\pi \sigma^2} e^{-(x^2 + y^2)/(2 \sigma^2)} - \frac{1}{2\pi K^2 \sigma^2} e^{-(x^2 + y^2)/(2 K^2 \sigma^2)})$

which represents an image convoluted to the difference of two Gaussians, which approximates a Mexican Hat function.

## Details and applications

Example before difference of Gaussians
After difference of Gaussians filtering in black and white

As a feature enhancement algorithm, the difference of Gaussians can be utilized to increase the visibility of edges and other detail present in a digital image. A wide variety of alternative edge sharpening filters operate by enhancing high frequency detail, but because random noise also has a high spatial frequency, many of these sharpening filters tend to enhance noise, which can be an undesirable artifact. The difference of Gaussians algorithm removes high frequency detail that often includes random noise, rendering this approach one of the most suitable for processing images with a high degree of noise. A major drawback to application of the algorithm is an inherent reduction in overall image contrast produced by the operation.[1]

When utilized for image enhancement, the difference of Gaussians algorithm is typically applied when the size ratio of kernel (2) to kernel (1) is 4:1 or 5:1. In the example images to the right, the sizes of the Gaussian kernels employed to smooth the sample image were 10 pixels and 5 pixels. The algorithm can also be used to obtain an approximation of the Laplacian of Gaussian when the ratio of size 2 to size 1 is roughly equal to 1.6.[2] The Laplacian of Gaussian is useful for detecting edges that appear at various image scales or degrees of image focus. The exact values of sizes of the two kernels that are used to approximate the Laplacian of Gaussian will determine the scale of the difference image, which may appear blurry as a result.

Differences of Gaussians have also been used for blob detection in the scale-invariant feature transform. In fact, the DoG as the difference of two Multivariate normal distribution has always a total null sum and convolving it with a uniform signal generates no response. It approximates well a second derivate of Gaussian (Laplacian of Gaussian) with K~1.6 and the receptive fields of ganglion cells in the retina with K~5. It may easily be used in recursive schemes and is used as an operator in real-time algorithms for blob detection and automatic scale selection.