拉普拉斯滤波器是如何计算的?

wis*_*dom 4 filtering image-processing convolution derivative laplacian

我并没有真正了解他们是如何提出导数方程的。有人可以详细解释一下,甚至可以提供指向具有足够数学解释的地方的链接吗?

图片

拉普拉斯滤波器看起来像

在此处输入图片说明

Cri*_*ngo 12

拉普拉斯先生提出了这个等式。这就是拉普拉斯算子的简单定义:二阶导数之和(你也可以把它看成Hessian 矩阵的迹)。

您显示的第二个方程是二阶导数的有限差分近似。这是您可以对离散(采样)数据进行的最简单的近似。导数定义为斜率(来自维基百科的方程):

导数方程

在离散网格中,最小的h是 1。因此导数是f(x+1)-f(x)。这个导数,因为它使用x和 右边的像素,引入了半像素偏移(即你计算这两个像素之间的斜率)。去的2阶导数,简单地计算上的导数的结果的衍生物:

f'(x) = f(x+1) - f(x)
f'(x+1) = f(x+2) - f(x+1)

f"(x) = f'(x+1) - f'(x)
      = f(x+2) - f(x+1) - f(x+1) + f(x)
      = f(x+2) - 2*f(x+1) + f(x)
Run Code Online (Sandbox Code Playgroud)

因为每个衍生物引入了半像素移位,在2阶导端部向上用1像素移位。所以我们可以将输出向左移动一个像素,从而没有偏差。这导致了序列f(x+1)-2*f(x)+f(x-1)

计算这个二阶导数与使用滤波器卷积相同[1,-2,1]

应用这个过滤器,还有它的转置,并添加结果,相当于与内核卷积

[ 0, 1, 0       [ 0, 0, 0       [ 0, 1, 0
  1,-4, 1    =    1,-2, 1    +    0,-2, 0
  0, 1, 0 ]       0, 0, 0 ]       0, 1, 0 ] 
Run Code Online (Sandbox Code Playgroud)

  • @wisdom:`h` 是步长。在离散情况下设置为 1。导数是关于“x”的。一阶离散导数引入了 1/2 像素的右移,因此选择了二阶一阶导数,左移一个像素,导致二阶导数没有移位。我会在答案中添加一些文字来解释这一点。 (2认同)