LoG和DoG

Laplacian of Gaussian(LoG)

Difference of Gaussian(DoG)

一幅图像可以引出两种观点:

第一,将图像看作是像素的集合,对于计算机来说,这是一种直观并且合适的观点。

第二,将图像看作是在x,y方向的二维函数,而计算机中的表示是对这个连续函数的采样。

图像边界的检测的一种方法是使用梯度算子(Roberts, Sobel and Prewitt),这些方法的原理是计算图像每个点的梯度。当梯度大于某个阈值的时候即将这个像素认定为边界像素。

但是,使用梯度算子效果并不好。特别当图像的灰度值变化比较慢的时候。这时候梯度算子会产生一条很宽的边界,或者由于梯度小于阈值而检测不到。这时一个很直观的想法是使用拉普拉斯算子。

拉普拉斯算子(The Laplace Operator)的定义:

它是对于像素点X,Y方向上二次偏导的和。

由于图像实际是离散像素形式,所以对于图像作用拉普拉斯算子可以转化为对于图像进行离散卷积运算。我们知道,在离散状态,导数(偏导)可以用差分近似。

 

\begin{displaymath}
\bigtriangleup = \bigtriangledown^2
=\bigtriangledown \cdot ...
... x_N}\right)^T
=\sum_{n=1}^N \frac{\partial^2}{\partial x_n^2}
\end{displaymath}  : N = 2  
  : $\displaystyle f[m+1,n]+f[m-1,n]+f[m,n+1]+f[m,n-1]-4f[m,n]$

于是图像在(m,n)点作用拉普拉斯算符后的值约等于对该点进行离散卷积,卷积核为:

\begin{displaymath}\bigtriangleup f(x,y)
=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}
\end{displaymath} 。

由于可以有多种近似方式,所以该卷积核不唯一。

 

对于一幅图像进行上述离散卷积后,可以得到一幅新图像,该图像每个像素的值约等于该点作用拉普拉斯算符后的值,及该点X,Y方向上二次偏导的和。

值得注意的是,施加离散卷积后的像素值等于0的点并不能作为图像的边界,正确的做法是对于一个像素的邻域(3×3,5×5,etc.)进行分析,如果其中有一个像素值大于0,一个小于0,则认为这个像素为边界。

下面进入正题:

由于采用拉普拉斯算子后对于那些孤立点的噪声很敏感,一个自然的想法是先对图像进行平滑处理,以减少噪声。\begin{displaymath}
\bigtriangleup[G_{\sigma}(x,y) * f(x,y)]=[\bigtriangleup G_{\sigma}(x,y)] * f(x,y)=LoG*f(x,y)
\end{displaymath} 

其中*表示卷积运算(连续),该结论表明可以将高斯和拉普拉斯统一为LoG算子。

LoG的定义为:

\begin{displaymath}
LoG \stackrel{\triangle}{=}\bigtriangleup G_{\sigma}(x,y)=\f...
...)
=\frac{x^2+y^2-2\sigma^2}{\sigma^4}e^{-(x^2+y^2)/2\sigma^2}
\end{displaymath} 

在离散状态下,通过对LoG采样形成离散卷积。比如:

\begin{displaymath}
\left[ \begin{array}{ccccc}
0 & 0 & 1 & 0 & 0 \\
0 & 1 &...
...
0 & 1 & 2 & 1 & 0 \\
0 & 0 & 1 & 0 & 0 \end{array} \right]
\end{displaymath} 

DoG的定义是两个高斯卷积的差分,即:

\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} 

未完待续。。

 

posted on 2012-11-24 17:00  mantic  阅读(1310)  评论(1)    收藏  举报

导航