python拉普拉斯算子滤波_简单易懂地向你解释:离散函数,差分,二阶差分和 Laplacian 滤波原理...

本文介绍了离散函数的概念,并通过实例解释了一阶和二阶差分。讨论了差分在求导中的类似作用,特别是在图像处理中检测边缘的重要性。接着,文章详细阐述了拉普拉斯滤波器的工作原理,强调二阶差分在确定边缘存在性上的关键作用,并给出了拉普拉斯算子的数学表达式及其在图像锐化中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如有写的不对的还望指正!

离散函数

什么是离散函数?我们来看几个例子:

77289b44a81cbba487e57863a808cb3b.png

这是 $f(x) = \sin x + \sin {x \over 2}$ 的函数图像。它的定义域是 $R$,是连续的。

再看下图这是 $f(x) = \sin x + \sin {x \over 2}$ 当 $x$ 是 $1\over2$ 的整数倍时的图像。是离散的。这样的定义域是离散集合的函数,称为离散函数。

060098962d7f97069724c7cccf480611.png

如果再苛刻一点,定义域是自然数集,值域是实数域,那么这样的函数就是离散数值函数

差分和二阶差分

什么是差分

差分就是相邻两个离散值的差。以函数 $f(x) = x^2,\ x\in Z$为例

$x$

$f(x)$

1

1

2

4

3

9

4

16

5

25

对于 $x = 1$,我们可以知道:

$f(1) = 1 \\f(1 + 1) = 4$

那么差分

$\Delta f(1) = f(1+1) - f(1) = 4 - 1 = 3$

内容补充

这样用$x+1$和 $x$作差的差分,称为向前差分,记号是$\Delta$。另有:

$f(x_i) - f(x_i - h)$:向后差分,记作 $\nabla。$

$f(x_i + h) - f(x_i - h)$ :中心差分。

如果进行一次泰勒展开,还能得到一阶微分的中心差商,可用于更高精度要求。有兴趣的可以自行了解。

以此类推,可得:

$x$

$f(x)$

$\Delta f(x)$

1

1

3

2

4

5

3

9

7

4

16

9

5

25

$\dots$

你会发现执行一次差分之后,差分值为等差数列。实际上运用这个特点可以让电路进行求导等数学操作,神奇吧?

我们对$\Delta f(x)$ 也执行差分,也就是差分的差分,称为二阶差分。

由此可得:

$x$

$f(x)$

$\Delta f(x)$

$\Delta ^2f(x)$

1

1

3

2

2

4

5

2

3

9

7

2

4

16

9

$\dots$

5

25

$\dots$

$\dots$

二阶差分之后,我们得到了常数列。可以发现差分的作用和求导是十分类似的。

偏导数的差分形式

在实际问题中,我们常常要面对不止一个自变量。比如图像处理中的像素,需要面对$x,\ y$两个自变量。这个时候可以把差分看作类似微分的东西。那么我们对 $x$ 求差分的偏导可以有:

$$

{\delta f\over\delta x} = {f(x, y) - f(x -1, y)\over1}

$$

由于函数是离散的,所以分母的增量是 $0$。

我们把 $y$ 也考虑进来:

$$

{\delta f\over\delta x} = {f(x, y) - f(x -1, y)}\\

{\delta f\over\delta y} = {f(x, y) - f(x , y - 1)}

$$

则二维的一阶差分(向后的)可以表示为:

$$

\begin{align}

\nabla f(x,y) & = {\delta f\over\delta x}+ {\delta f\over\delta y} \\

& = 2{f(x, y) - f(x -1, y)} - f(x , y - 1)

\end{align}

$$

实际使用时,可以使用向后差分,也可以使用向前差分:

$$

\begin{align}

\nabla f(x,y) & = {\delta f\over\delta x}+ {\delta f\over\delta y} \\

& = - 2{f(x, y) + f(x -1, y)} + f(x , y - 1)

\end{align}

$$

也有人叫它导数,我觉得差分更能体现离散型。不过,大家明白意思就好。

拉普拉斯滤波

差分和导数类似,可以反映变化的快慢。对灰度不同的两个像素进行差分,得到的值就是两个像素的过渡急缓。而过度急剧的地方,往往就是图像中物体的边缘,因此我们认为:一阶差分可以检测边缘存在的可能性。这是一阶差分在这里的实际意义。

那么如果是二阶差分呢?在物理学中,对于位移$\vec{x}$和时间$t$,一阶导数表示速度,二阶差分表示速度的导数加速度。同样的,在图像处理上,一阶差分表示相邻像素的过渡急缓,二阶差分就表示这种过度急缓的变化强弱,可能你还是不明白,没关系,我们会在下面进一步解释。

如果一阶差分就能检测边缘,我们为什么还要二阶差分呢?

我们看下面的图:

6aa5ad745fd697caafad4fef71eda231.png

这是一张从白到黑均匀渐变的图案,如果交给一阶差分来从上往下分析,会发现差分值一直都存在。于是一阶差分滤波器告诉你:这里全是边缘。但是这和我们的常识是不符的,因为虽然灰度变化了,但是变化的趋势却是均匀的。那么怎么样才能正确判断这是不是边缘呢?聪明的你应该想到了,用二阶差分来看,差分值一直是 0,说明变化是十分均匀的,说明边缘并不存在。因此,二阶差分才是真能确定边缘的存在性。

现在知道了它的作用,我们怎么计算二阶差分呢?显然的,对一阶差分再算一次差分就行了,具体的操作我们在上一节的表格里列过,用数学语言表达,对于 $x$ 的二阶偏差分就是:

$$

\begin{align}

\frac{\partial^2f}{\partial x ^2} & =\frac{\partial f'(x)}{dx^2}=f'(x+1)-f'(x)\\

& =f((x+1)+1)-f((x+1))-(f(x+1)-f(x))\\

& =f(x+2)-f(x+1)-f(x+1)+f(x) \\

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

\end{align}

$$

令 $x=x-1$ 得:

$$

\frac{\partial^2f}{\partial x ^2}=f(x+1)+f(x-1)-2f(x)

$$

同理得到对$y$ 的二阶差分。故有:

$$

\frac{\partial^2f}{\partial x ^2}=f(x+1,y)+f(x-1,y)-2f(x,y)\\

\frac{\partial^2f}{\partial y ^2}=f(x,y+1)+f(x,y-1)-2f(x,y)

$$

综合可得:

$$

\begin{align}

\Delta^2 f(x,y) & = \frac{\partial^2f}{\partial x ^2}+\frac{\partial^2f}{\partial y ^2} \\

&=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)

\end{align}

$$

这个东西就是拉普拉斯掩膜重心系数,简称拉普拉斯算子,以窗口(窗口的概念,见高斯滤波原理章节)中心元素为坐标原点,将窗口中各个元素带入,即可得到窗口的权重模板,也称核(Kernel)。

一个 8 邻域的窗口核如下:

$$

k = \left[

\begin{matrix}

-1 & -1 & -1 \\

-1 & 8 & -1 \\

-1 & -1 & -1 \\

\end{matrix}

\right]

$$

以此核进行滤波,即可对图像进行锐化。(提醒:结果中有负值部分,记得进行归一化,以免造成缺失)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值