next up previous
Next: About this document ... Up: gradient Previous: Laplacian of Gaussian (LoG)

Difference of Gaussian (DoG)

Similar to Laplace of Gaussian, the image is first smoothed by convolution with Gaussian kernel of certain width $\sigma_1$

\begin{displaymath}G_{\sigma_1}(x,y)=\frac{1}{\sqrt{2\pi \sigma_1^2}}exp[-\frac{x^2+y^2}{2\sigma_1^2}] \end{displaymath}

to get

\begin{displaymath}g_1(x,y)=G_{\sigma_1}(x,y)*f(x,y) \end{displaymath}

With a different width $\sigma_2$, a second smoothed image can be obtained:

\begin{displaymath}g_2(x,y)=G_{\sigma_2}(x,y)*f(x,y) \end{displaymath}

We can show that the difference of these two Gaussian smoothed images, called difference of Gaussian (DoG), can be used to detect edges in the image.

\begin{displaymath}g_1(x,y)-g_2(x,y)=G_{\sigma_1}*f(x,y)-G_{\sigma_2}*f(x,y)
=(G_{\sigma_1}-G_{\sigma_2})*f(x,y)=DoG*f(x,y)
\end{displaymath}

The DoG as an operator or convolution kernel is defined as

\begin{displaymath}DoG \stackrel{\triangle}{=}G_{\sigma_1}-G_{\sigma_2}=\frac{1}...
...)/2\sigma_1^2}-
\frac{1}{\sigma_2}e^{-(x^2+y^2)/2\sigma_2^2}]
\end{displaymath}

Both 1D and 2D functions of $G_{\sigma_1}(x,y)$ and $G_{\sigma_2}(x,y)$ and their difference are shown below:

DoG.gif

DoG_plot.gif

The discrete convolution kernel for DoG can be obtained by approximating the continuous expression of DoG given above. Again, it is necessary for the sum or average of all elements of the kernel matrix to be zero.

Comparing this plot with the previous one, we see that the DoG curve is very similar to the LoG curve. Also, similar to the case of LoG, the edges in the image can be obtained by these steps:

The last step is needed to suppress the weak zero-crossings most likely caused by noise.

Edge detection by DoG operator:

forest_dog.gif


next up previous
Next: About this document ... Up: gradient Previous: Laplacian of Gaussian (LoG)
rwang 2007-09-18