拉普拉斯滤波器是如何计算的?
how is Laplacian filter calculated?
我不太明白他们是如何得出导数方程的。有人可以详细解释一下,甚至 link 到某个有足够数学解释的地方吗?
拉普拉斯滤波器看起来像
拉普拉斯先生提出了这个等式。这就是拉普拉斯算子的简单定义:二阶导数之和(也可以看成Hessian matrix的迹)
您显示的第二个等式是 finite difference approximation to a second derivative. It is the simplest approximation you can make for discrete (sampled) data. The derivative is defined as the slope (equation from Wikipedia):
在离散网格中,最小的h
为1,因此导数为f(x+1)-f(x)
。这个导数,因为它使用 x
处的像素和右边的像素,引入了半像素偏移(即你计算这两个像素之间的斜率)。要获得 2nd 阶导数,只需计算导数结果的导数:
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)
因为每个导数都引入了半个像素的偏移,所以 2nd 阶导数以 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 ]
我不太明白他们是如何得出导数方程的。有人可以详细解释一下,甚至 link 到某个有足够数学解释的地方吗?
拉普拉斯滤波器看起来像
拉普拉斯先生提出了这个等式。这就是拉普拉斯算子的简单定义:二阶导数之和(也可以看成Hessian matrix的迹)
您显示的第二个等式是 finite difference approximation to a second derivative. It is the simplest approximation you can make for discrete (sampled) data. The derivative is defined as the slope (equation from Wikipedia):
在离散网格中,最小的h
为1,因此导数为f(x+1)-f(x)
。这个导数,因为它使用 x
处的像素和右边的像素,引入了半像素偏移(即你计算这两个像素之间的斜率)。要获得 2nd 阶导数,只需计算导数结果的导数:
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)
因为每个导数都引入了半个像素的偏移,所以 2nd 阶导数以 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 ]