微分算子为什么也是空间滤波器

版权声明:无需授权,可任意转载。 https://blog.csdn.net/saltriver/article/details/78990694

前面我们提到,可以用一阶微分算子和二阶微分算子来增强图像,由于是增强了图像中的物体边缘轮廓,起到了锐化图像的效果,因此这些算子操作可用于图像锐化。

我们在前面的图像模糊中,介绍了使用平滑空间滤波器来模糊图像,那么用微分算子来锐化图像能不能也使用空间滤波器的形式呢?

我们分别选一个一阶微分算子和一个二阶微分算子作为示例:Sobel算子和Laplacian算子。首先,还是给出图像像素的8领域:
这里写图片描述

对于拉普拉斯算子,其二阶梯度表示是:
Laplacian = z8 + z2 + z6 + z4 - 4*z5
如果我们把8领域都考虑进去,其可以转换成如下的形式:
Laplacian =
0*z1 + 1*z2 + 0*z3 +
1*z4 + (-4)*z5 + 1*z6 +
0*z7 + 1*z8 + 0*z9
这和上面的式子是等价的。我们把上面的8领域像素的系数提取出来,形成一个系数矩阵,就是:
这里写图片描述

那么对图像实施拉普拉斯算子操作,实质上就是用这个系数矩阵与图像中的任意一点的领域区域矩阵进行矩阵点乘,然后求点乘后矩阵的和。写出公式就是:

g(x,y)=a=nnb=nnw(a,b)f(x+a,y+b)

其中w(a, b)就是上面的拉普拉斯算子矩阵。

我们注意到,这和前面文章中提到的空间滤波器形式是一模一样的。所以,像拉普拉斯算子这样的二阶微分算子,可以像平滑空间滤波器(图像降噪、图像模糊)那样,使用空间滤波器的形式,这为统一计算模型带来了极大方便。

同理,对于Sobel算子,其一阶梯度表示是:
S=|(z7+2*z8+z9)-(z1+2*z2+z3)|+|(z3+2*z6+z9)-(z1+2*z4+z7)|
由于这里用了绝对值,我们需要分开来:
Sobel = |gx|+|gy|
gx = (z7+2*z8+z9)-(z1+2*z2+z3)
gy = (z3+2*z6+z9)-(z1+2*z4+z7)

转换成等价形式:
gx =
(-1)*z1 + (-2)*z2 + (-1)*z3+
0*z4 + 0*z5 + 0*z6 +
1*z7 + 2*z8 + 1*z9
gy =
(-1)*z1 + 0*z2 + 1*z3 +
(-2)*z4 + 0*z5 + 2*z6 +
(-1)*z7 + 0*z8 + 1*z9
提取出系数矩阵就是:
这里写图片描述

由于使用了x方向和y方向梯度的绝对值的和来表示梯度幅值,因此Sobel算子需要使用2个这样的系数矩阵,也就是2个空间滤波器。

猜你喜欢

转载自blog.csdn.net/saltriver/article/details/78990694