发布于在下的博客:https://www.pluvet.com/archiv... 不容许转载。html
若有写的不对的还望指正!函数
什么是离散函数?咱们来看几个例子:spa
这是 $f(x) = \sin x + \sin {x \over 2}$ 的函数图像。它的定义域是 $R$,是连续的。htm
再看下图这是 $f(x) = \sin x + \sin {x \over 2}$ 当 $x$ 是 $1\over2$ 的整数倍时的图像。是离散的。这样的定义域是离散集合的函数,称为离散函数。blog
若是再苛刻一点,定义域是天然数集,值域是实数域,那么这样的函数就是离散数值函数rem
差分就是相邻两个离散值的差。以函数 $f(x) = x^2,\ x\in Z$为例get
$x$ | $f(x)$ |
---|---|
1 | 1 |
2 | 4 |
3 | 9 |
4 | 16 |
5 | 25 |
对于 $x = 1$,咱们能够知道:博客
$f(1) = 1 \\f(1 + 1) = 4$数学
那么差分 it
$\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$,一阶导数表示速度,二阶差分表示速度的导数加速度。一样的,在图像处理上,一阶差分表示相邻像素的过渡急缓,二阶差分就表示这种过分急缓的变化强弱,可能你仍是不明白,不要紧,咱们会在下面进一步解释。
若是一阶差分就能检测边缘,咱们为何还要二阶差分呢?
咱们看下面的图:
这是一张从白到黑均匀渐变的图案,若是交给一阶差分来从上往下分析,会发现差分值一直都存在。因而一阶差分滤波器告诉你:这里全是边缘。可是这和咱们的常识是不符的,由于虽然灰度变化了,可是变化的趋势倒是均匀的。那么怎么样才能正确判断这是否是边缘呢?聪明的你应该想到了,用二阶差分来看,差分值一直是 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] $$
以此核进行滤波,便可对图像进行锐化。(提醒:结果中有负值部分,记得进行归一化,以避免形成缺失)