二阶边缘检测 - Laplacian of Guassian 高斯拉普拉斯算子

目录

一、拉普拉斯算子

二、高斯拉普拉斯算子

​​​​​​三、一阶、二阶导数的区别


一、拉普拉斯算子

拉普拉斯算子相当于对像素进行二阶导数。

                        ​​​一阶求导              f'(x) = \frac{f(x+\Delta x)-f(x)}{\Delta x}                                     (1)

                                                f'(x+\Delta x) = \frac{f(x+2\Delta x)-f(x+\Delta x)} { \Delta x}                   (2)

                        二阶求导                     f''(x+\Delta x) = \frac {f'(x+\Delta x) - f'(x)}{\Delta x}                  (3)

                                                f''(x+\Delta x) =\frac{ f(x+2\Delta x) - 2f(x+\Delta x)+f(x)}{\Delta x}    (4)

算出来高斯算子的模板是这样的: 

它的优点是简单,但是容易受到噪声的影响。

二、高斯拉普拉斯算子

二阶边缘检测可以叫做,高斯的拉普拉斯,也可以叫做马尔算子(Marr Hildreth)。

因为高斯方程有平滑的效果,所以高斯拉普拉斯也有,因此它对噪声不敏感。

高斯方程去掉常数项为:

g(x,y) = e^{ \frac{ -(x^{2}+y^{2})}{ 2\sigma^{2}}}        (5)

x的一阶偏导为:

\frac{\partial g}{\partial x}=-\frac{x}{\sigma^{2}}e^{\frac{ -(x^{2}+y^{2})}{2\sigma^2}}        (6)

x的二阶偏导为:

\frac{\partial g}{\partial x^{2}}= \frac{1}{\sigma^{2}}( \frac{x_{2}}{\sigma ^{2}}-1) e^{ \frac{-(x^{2}+y^{2})}{2\sigma^2}}        (7)

y的一阶偏导为

\frac{\partial g}{\partial y}=-\frac{y}{\sigma^{2}}e^{\frac{ -(x^{2}+y^{2})}{2\sigma^2}}        (8)

y的二阶偏导为

\frac{\partial g}{\partial^{2}}= \frac{1}{\sigma^{2}}( \frac{y_{2}}{\sigma ^{2}}-1) e^{ \frac{-(x^{2}+y^{2})}{2\sigma^2}}        (9)

根据(7)(9)我们能得到

\triangledown g^{2}(x,y,\sigma) = g''(x) + g''(y)=\frac {e^{\frac{-(x^{2}+y^{2})}{2\sigma^{2}}}} {\sigma^{2}} (\frac{x^{2}+y^{2}}{\sigma^{2}}-2)        (10)

 把(10)化简,                         e^{\frac{-(x^{2}+y^{2})}{2\sigma^2}} (\frac{x^2+y^2}{\sigma^4}-\frac{2}{\sigma^2})

                                                LoG=e^{\frac{-(x^{2}+y^{2})}{2\sigma^2}} \frac{(x^2+y^2-2\sigma^2)}{​{\sigma^4}}{\frac{1}{2\pi \sigma^2}} = -\frac{1}{\pi\sigma^4}(1-\frac{x^2+y^2}{2\sigma^2}) e^{\frac{-(x^{2}+y^{2})}{2\sigma^2}}

                                        加了高斯函数的常数在最后1/(2 pi sigma^2)

高斯算子拉普拉斯算子的形状

​​​​​​三、一阶、二阶导数的区别

对于边缘检测,一阶导数检测的是变化率最大的部分,此时导数代表的值越大,表示这个地方的像素变化越大,越有可能是边缘。

二阶导数检测的是零交叉值,这时检测了变化率变化值最大的地方。

 ​​​​​

判断二阶导数是否过零点采取如下图的方法。

把中心点分成如下四个区域,分别计算四个区域的平均值。如果任何象限中点的平均值和其他各象限的平均值符号不同,那么中心点处一定有一个过零点。算出四个平均值,如果最大的大于零,最小的小于零,那么临近点中一定有过零点的点。

猜你喜欢

转载自blog.csdn.net/qq_39696563/article/details/125734371